我有一个嵌套的 XML,如下所示:
<data>foo <data1>hello</data1> bar</data>
我正在使用minidom,但无论我如何尝试获取“data”之间的值,我只得到“foo”而不是“bar”
如果 XML 是这样的,那就更糟糕了:
<data><data1>hello</data1> bar</data>
我只得到一个“None”,根据上面的逻辑这是正确的。所以我遇到了这个:http://levdev.wordpress.com/2011/07/29/get-xml-element-value-in-python-using-minidom并得出结论是由于minidom的限制?
所以我使用了该博客中的方法,现在我得到了
foo <data1>hello</data1> bar
和
<data1>hello</data1> bar
这是可以接受的。但是,如果我尝试使用上面的输出作为节点值来创建一个新节点 (createTextNode),则 XML 变为:
<data>foo <data1>hello</data1> bar</data>
和
<data><data1>hello</data1> bar</data>
有什么方法可以让它看起来像原来的一样吗?谢谢。
最佳答案
您可以使用 xml 元素树,它对于节点的检索和创建非常有效
看看下面的链接
element tree -- tutorials mixed xml
创建节点的一些示例
import xml.etree.ElementTree as ET
data = ET.Element('data')
data1= ET.SubElement(data, 'data1',attr="value")
data1.text="hello"
data.text="bar"
data1.tail="some code"
ET.dump(data)
输出:<data>bar<data1 attr="value">hello</data1>some code</data>
关于python - Python 中的嵌套 XML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23331634/