2011-07-12 10 views
0

私は、他のタグ内でのみネストされた特定のタグ、つまり抽出したいデータを含むタグをXML文書のどこか別の場所から抽出するXMLファイルを用意しています。minidomを使用してXMLを解析する

サンプルXML:

<root> 
    <tag1>content I don't want</tag1> 
    <tag2>content I don't want</tag2> 
    <tag3>content I don't want</tag3> 
    <item> 
     <tag1>content I want</tag1> 
     <tag2>content I want</tag2> 
     <tag3>content I want</tag3> 
    </item> 
    <item> 
     <tag1>content I want</tag1> 
     <tag2>content I want</tag2> 
     <tag3>content I want</tag3> 
    </item> 
</root> 
(私はしたくないタグからを含め、すべてのデータを取得する)

Pythonコード:私はのみアクセスするようにループを変更するにはどうすればよい

for counter in range(2): 
    variable0 = XML_Document.getElementsByTagName('item')[counter] 
    variable1 = XML_Document.getElementsByTagName('tag1')[counter].toxml(encoding="utf-8") 
    variable2 = XML_Document.getElementsByTagName('tag2')[counter].toxml(encoding="utf-8") 
    variable3 = XML_Document.getElementsByTagName('tag3')[counter].toxml(encoding="utf-8") 
    print counter 
    print variable1 
    print variable2 
    print variable3 

をアイテムタグにネストされたタグ内のデータのみ?

+0

私は使いやすさのためにPythonでExpatのを好みます。 http://docs.python.org/library/pyexpat.html –

答えて

1

あなたは、常にすべてのサブノードにgetElementsByTagName()を呼び出すことができます。

for item in XML_Document.getElementsByTagName('item'): 
    tag1 = item.getElementsByTagName('tag1')[0].toxml(encoding="utf-8") 
    tag2 = item.getElementsByTagName('tag2')[0].toxml(encoding="utf-8") 
    tag3 = item.getElementsByTagName('tag3')[0].toxml(encoding="utf-8") 
    print tag1, tag2, tag3 
関連する問題