私はこのことのために新規です。私のオリジナルのxmlは約8GBなので、オリジナルのxmlに関心のある子供のためのすべての親、祖父母、祖父母などを手動で調べるのは難しいです。興味のある子どもが見つかるまで、すべてのノードを調べようとしています。ですから、country_data.xmlの興味のある子孫までxmlの "スケルトン"構造を作成したいと思います。https://docs.python.org/2/library/xml.etree.elementtree.htmlから。コードのため申し訳ありません:Pythonを使用して特定のXMLノードまでのXML構造を生成する方法は?
def LookThrougStructure(parent, xpath_str, stop_flag):
out_str.write('Parent tag: %s\n' % (parent.tag))
for child in parent:
if child.tag == my_tag:
out_str.write('Child tag: %s\n' % (child.tag))
#my_node_is_found_flag = 1
break
LookThrougStructure(child, child.tag, 0)
return
import xml.etree.ElementTree as ET
tree = ET.parse('country_data.xml')
root = tree.getroot()
my_tag = 'neighbor'
out_str = open('xml_structure.txt', 'w')
LookThrougStructure(root, root.tag, my_tag)
out_str.close()
それは間違って動作し、すべてのノードのタグをyelds:
親タグ:データ親タグ:国親タグ:ランク親タグ:年 親タグ:gdppc子タグ:隣人の親タグ:国親タグ: ランク親タグ:年の親タグ:gdppc子タグ:隣人の親 タグ:国親タグ:ランク親タグ:年親タグ:gdppc子供 タグ:隣人
しかし、私はそのような何かをしたいが、(私の興味を持って子供が "隣人" である):
- データ
- 国
- 隣人
- 国
かそれは:/ dat a/country /隣人。 どうしたのですか?
実際の出力を正しい形式で追加することはできますか?私はあなたが望むものをよく理解していません。 –
はい:上記を参照してください。私はrank、year、gdppcのようなものは必要ありません。隣のタグのすべての親ノードだけを見たいと思っています。 –
だから、基本的に祖先は隣人までしか望んでいないのですか? –