source.xml
<root xxx>
<test>
<ppp>
<ppp>
xxx
</ppp>
<ppp>
yyy
</ppp>
...
...
</ppp>
</test>
pppの中にはたくさんあります 私はそれを一つのファイルに抽出したいのです。
1.xml:
<ppp>
xxx
</ppp>
2.xml
<ppp>
yyy
</ppp>
3.xmlなど
私はそれがxml.etree.ElementTreeによって達成できることを知っています plsは親切に私にこれのための例を与えてください、混乱している部分はそれが二重pppを持っているということです。
回答:
回答№1は1使用するソリューション xml.etree.ElementTree
モジュール:
import xml.etree.ElementTree as ET
# to load xml contents from file use the following:
# tree = ET.parse("source.xml")
# root = tree.getroot()
source = """<?xml version="1.0"?>
<root>
<test>
<ppp>
<ppp>
xxx
</ppp>
<ppp>
yyy
</ppp>
</ppp>
</test>
</root>
"""
root = ET.fromstring(source)
for k, ppp in enumerate(root.findall("./test/ppp/ppp")):
tree = ET.ElementTree(ppp)
tree.write(str(k+1) + ".xml")
root.findall("./test/ppp/ppp")
- すべての一致する要素をパスで検索しますtree.write()
- XMLとして要素ツリーをファイルに書き込む
上記のコードは必要な要素を解析してファイルに書き込みます。 1.xml
そして 2.xml
それぞれ
https://docs.python.org/3/library/xml.etree.elementtree.html
回答№2の場合は1
ドキュメント内(https://docs.python.org/2/library/xml.etree.elementtree.html私は次の文章を見つけました:
子はネストされており、インデックスによって特定の子ノードにアクセスできます。
>
root [0] [1] .text 「2008年」
だからあなたはそれらをあなたの最初の大きなXMLから取り出した後にIndexでそれらを単に呼び出すことができるはずです。これがどういうわけか役に立つことを願っています:)