/ pythonを使って1つのxmlから複数のxmlにセクションを抽出する方法 - python、xml、extract

1つのXMLから複数のXMLにセクションを抽出する方法 - python、xml、extract

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でそれらを単に呼び出すことができるはずです。これがどういうわけか役に立つことを願っています:)