0

編集:

皆さん、ありがとうございます。forステートメントの最後にある:を完全に忘れました。また、スペースで使用していた元のタグについては、それをフィラーテキストとして使用していました。実際の名前には、要素タグとしてaword_anotherwordがあります

今、私がこのようなものを持っているなら、

<TIER name="a">
<tier_1> 
 <tier_2>
   <tier_3> a1</tier_3> 
 </tier_2>
</tier_1>

<tier_1> 
 <tier_2>
   <tier_3> a2</tier_3> 
 </tier_2>
</tier_1>

<tier_1> 
 <tier_2>
   <tier_3> a3</tier_3> 
 </tier_2>
</tier_1>
</TIER>

<TIER name="b">
<tier_1> 
 <tier_2>
   <tier_3> b1</tier_3> 
 </tier_2>
</tier_1>

<tier_1> 
 <tier_2>
   <tier_3> b2</tier_3> 
 </tier_2>
</tier_1>

<tier_1> 
 <tier_2>
   <tier_3> b3</tier_3> 
 </tier_2>
</tier_1>
</TIER>

name = "a"の最初の層からtier_3だけを印刷するにはどうすればよいですか?




私はこのようなxmlシートを持っています

<ALL TIERS>
<tier 1> 
 <tier 2>
   <tier 3> Hello one!</tier3> 
 </tier 2>
</tier 1>

<tier 1> 
 <tier 2>
   <tier 3> Hello two!</tier3> 
 </tier 2>
</tier 1>

<tier 1> 
 <tier 2>
   <tier 3> Hello three!</tier3> 
 </tier 2>
</tier 1>

</ALL TIERS>

Pythonを使用して、ティア3のテキストノード値をすべて出力したいので、次のようになります。

こんにちは!こんにちは二人!こんにちは3人!

私はこれを書いた:

from xml.dom import minidom 
xmldoc = minidom.parse(sys.argv[1])
xlist = xmldoc.getElementsByTagName('tier 3') 

for i in xlist

    print " ".join(t.nodeValue for t in i.childNodes if t.nodeType==t.TEXT_NODE)

しかし、それは「foriinxlist」を指す無効な構文のエラーを私に与えます

誰かが私がこれを修正するのを手伝ってくれるでしょうか?ありがとうございました!

4

2 に答える 2

1

textXmlから取得するための代替手段。

また、タグに含まれているように、Xmlは適切に形成されていませんspaces

import xml.etree.ElementTree as ET
txt = """<ALL-TIERS>
<tier-1>
 <tier-2>
   <tier-3> Hello one!</tier-3>
 </tier-2>
</tier-1>
<tier-1>
 <tier-2>
   <tier-3> Hello two!</tier-3>
 </tier-2>
</tier-1>
<tier-1>
 <tier-2>
   <tier-3> Hello three!</tier-3>
 </tier-2>
</tier-1>
</ALL-TIERS>
"""

root = ET.fromstring(txt)

for e in root.iter('ALL-TIERS'):
    print ">>"
    print ET.tostring(e, method="text").strip()
    print "<<"

for e in root.iter('tier-3'):
    print ">>"
    print ET.tostring(e, method="text").strip()
    print "<<"

与える:

>>
Hello one!




    Hello two!




    Hello three!
<<
>>
Hello one!
<<
>>
Hello two!
<<
>>
Hello three!
<<
于 2013-02-15T18:56:34.240 に答える
0

あなたの当面の問題は:、 for ステートメントが欠落していることです

for i in xlist:

あなたもそうしたいと思うでしょうしimport sys、あなたの XML は整形式ではありませ<ALL_TIERS><ALL TIERS>。(終了タグも変更する必要があります。)

于 2013-02-15T18:46:04.783 に答える