我正在解析以下XML文件
使用 xml.etree.ElementTree:
<main>
<stream id="1" name="some">
<inner id="500">
<sub-inner>
<inside> 500 </inside>
</sub-inner>
</inner>
</stream>
<stream id="2" name="some">
<inner id="500">
<sub-inner>
<inside> 500 </inside>
</sub-inner>
</inner>
</stream>
</main>
如何将
尝试使用Python lxml
包执行此操作:因为 lxml 支持在 XML 上触发 xPATH。
from lxml import etree
tree = etree.parse("C:\abc.xml")
root = tree.getroot()
elem = tree.xpath("//stream[@id='2']//sub-inner")[0]
elem.append( etree.Element("outer") )
elem1 = tree.xpath("//stream[@id='2']//sub-inner//outer")[0]
elem1.text = "200"
它将在sub-inner
stream id="2"
的位置附加新元素outer
。
输出将为:
<main>
<stream id="1" name="some">
<inner id="500">
<sub-inner>
<inside> 500 </inside>
</sub-inner>
</inner>
</stream>
<stream id="2" name="some">
<inner id="500">
<sub-inner>
<inside> 500 </inside>
<outer>200</outer>
</sub-inner>
</inner>
</stream>
</main>