【发布时间】:2015-02-09 22:15:53
【问题描述】:
我有这样的 XML 文件:
<?xml version='1.0' encoding='utf-8'?>
<file_name fileNamee="test1">
<xmlID idName="1">
<expr mode="inline" xml:id="1">
<App>
<Tok font="medium" meaning="less-than-or-equals" name="lea" role="RELOP">≤</Tok>
<Tok font="medium italic" role="UNKNOWN">d</Tok>
<App>
<Tok font="medium" meaning="minus" role="ADDOP">-</Tok>
<App>
<Tok meaning="times" role="MULOP"> </Tok>
<Tok font="medium italic" name="phi" possibleFunction="yes" role="UNKNOWN">ϕ</Tok>
<Tok close=")" font="medium italic" open="(" role="UNKNOWN">k</Tok>
</App>
<Tok font="medium" meaning="2" role="NUMBER">2</Tok>
</App>
</App>
</expr>
</xmlID>
使用 XPath,我想找到所有有文本的 Tok 节点以及没有文本的节点。
我试过了:
tree = etree.parse(xmlFile)
textTok = tree.xpath('//Tok[text()]')
它工作并返回所有有文本的 Tok 节点。
但是如何使用 xpath 表达式获取所有没有文本的 Tok 节点?
谢谢
【问题讨论】:
-
对Python不太熟悉;您确定这个
iter()方法将XPath 表达式作为参数吗?无论如何,您应该为您的问题添加一个完整的、可验证的 Python 脚本。 -
是的,感谢您的回复,它解决了部分问题,所以我编辑了问题
标签: python-3.x xpath