我正在使用Python构建一些XML。从源字符串中我需要用break(\r
)替换<br />
。该字符串可能有几个中断。
我正试图获得以下结果:
<foo><bar>Hello<br />world<br />I love you</bar></foo>
来自以下字符串:
'Hello\rworld\rI love you.'
我看过SubElement(<node>, 'br')
,我已经开始使用CDATA了。
示例:
from xml.etree.cElementTree import Element, SubElement, tostring
def add_xml_data(value):
data = Element('foo')
val_node = SubElement(data, 'bar')
val_node.text = value
val = value.strip('\r')
parts = val.split('\r')
for part in parts:
br = SubElement(val_node, 'br')
return data
value = 'Hello\rworld\rI love you.'
print tostring(add_xml_data(value))
答案 0 :(得分:0)
我假设你正在使用xml.etree.ElementTree
。这是个主意:
\r
<br/>
替换为replace()
<bar></bar>
标记内
fromstring()
foo
元素并将append()
加载的树代码:
import xml.etree.ElementTree as etree
data = """
Hello\rworld\rI love you.
"""
data = '<bar>%s</bar>' % data.replace('\r', '<br/>')
bar = etree.fromstring(data)
foo = etree.Element('foo')
foo.append(bar)
print etree.tostring(foo)
打印:
<foo><bar>
Hello<br />world<br />I love you.
</bar></foo>