我是Python新手,我有以下.xml
文件:
<A>
<B>
<C>NUM123456</C>
<D>
<E>123</E>
<F>Spam</F>
<G>Apple</G>
</D>
<D>
<E>456</E>
<F>Egg</F>
<G>Orange</G>
</D>
<D>
<E>789</E>
<F>Bacon</F>
<G>Strawberry</G>
</D>
<D>
<E>0AB</E>
<F>Cheese</F>
<G>Cherry</G>
</D>
</B>
</A>
我正在尝试将其中的一部分用于新的.xml
文件:
<A>
<B>
<C>NUM123456</C>
<D>
<E>456</E>
<F>Egg</F>
<G>Orange</G>
</D>
<D>
<E>0AB</E>
<F>Cheese</F>
<G>Cherry</G>
</D>
</B>
</A>
我正在尝试使用.xpath
,但只有在找到不同节点后才开始编写新的.xml
文件。换句话说,新<A> <B>
文件中不包含节点<C>
和.xml
。有人可以帮忙吗?
谢谢!
答案 0 :(得分:1)
您需要输入正确的标准 - 我根据您的示例中的文本值设置此过滤器:
#!/usr/bin/env python
from xml.etree import ElementTree
import sys
tree = ElementTree.ElementTree()
tree.parse(sys.stdin)
b = tree.find("B")
for e in b.getiterator("D"):
if e.find("E").text in ["123", "789"]:
b.remove(e)
tree.write(sys.stdout)
像这样运行:
./ parse.py< file.xml
获得所需的输出。