私は次のようなXMLドキュメントがあります。XPathを使用して、次の特定の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」+数で終わるパスを持っているすべてのノードを選択する必要があります。以下のように: "/B/C1" と "/B/C2" が、好きではない "/B/C6/D"、また "/B/C4/D/E" 。
私は次のことをしようとした場合:
`cNodes = xmlDoc.xpath("//object[contains(@path, `a/b/c`)]")`
その後、これは私が必要とするものではありません "A/B/C6/D" と "A/B/C4/D/E" が含まれます。
のコードを1行または2行で記述する方法があります。です。私は、ループのようなものでそれをやり遂げることができ、そのようなことはしたくない、ということです。実際のXML文書は何千ものノードであるからです。
PS:Pythonの2.7、lxmlの
いいえ、パスは属性に過ぎません。それは内容とは関係ありません。 – AhmedWas
@JeffMercado名前を 'path'から' distName'に変更しました。私は単に例を挙げているからです。私が持っているXML文書とまったく同じではありません。 – AhmedWas
@JeffMercado申し訳ありません、私の間違いです。私は編集します。 – AhmedWas