【发布时间】:2016-05-25 04:30:34
【问题描述】:
我有一个如下的 XML 文档:
<Objects>
<object distName="a/b"> </object>
<object distName="a/b/c1"> </object>
<object distName="a/b/c4/d/e"> </object>
<object distName="a/b/c2"> </object>
<object distName="a/b/c6/d"> </object>
</Objects>
我需要选择路径以 "c" + number 结尾的所有节点。喜欢:“a/b/c1”和“a/b/c2”,但不喜欢“a/b/c6/d” ,也不是“a/b/c4/d/e”。
如果我尝试以下操作:
`cNodes = xmlDoc.xpath("//object[contains(@path, `a/b/c`)]")`
那么这将包括我不需要的“a/b/c6/d”和“a/b/c4/d/e”。
那么有没有办法在一行或两行代码中完成这项工作。我的意思是我可以用循环之类的东西来做到这一点,我不想这样做。那是因为真正的 XML 文档是数千个节点。
PS:Python 2.7,lxml
【问题讨论】:
-
不,路径只是一个属性。它与内容无关。
-
@JeffMercado 我将名称从
path更改为distName。因为我只是举个例子。它与我拥有的 XML 文档不完全一样。 -
@JeffMercado 对不起,我的错误。我会编辑。
-
好的,现在说得通了。 :)
标签: python xml python-2.7 xpath lxml