python打印xml元素中的文本节点值

2024-06-01 09:58:57 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑:

谢谢你们,我完全忘记了:在最后的声明。另外,对于空间中的原始标记,我只是将其用作填充文本!实际名称确实有一个词作为元素标记

如果我有这样的东西

<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>

我怎样才能不打印第一层中名为“a”的第三层?




我有一张类似这样的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层的文本节点值,结果如下

你好一个!你好,二号!你好,三个!

我写的是:

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)

但这给了我一个指向“for i in xlist”的无效语法错误

有人能帮我纠正一下吗? 谢谢您!


Tags: namein标记文本helloforxmlall