1
複数の要素の名前を出力しようとしていますが、出力するようにXPathを説得することしかできません。一致する複数の要素名を出力する
このXMLを考える:私はこれを試してみてfoob
を取得
<xml>
<foob>931</foob>
<arba>478</arba>
<zfoo>892</zfoo>
</xml>
を:
name(//*[contains(name(), "foo")])
私はこれを試してみて、無効な式に関するエラーが表示されます。このものの
//*[contains(name(), "foo")]/name()
正常に動作します:
//*[contains(name(), "foo")]/text()
私はコマンドラインにあり、同じ結果を持つxmllint
とxpath
(PerlのXML-XPathモジュール)を試してみました。
どうすればfoob
とzfoo
が返されますか? name()
にXPath 1.0の、あなたの最初のXPath、ちょうど"foob"
ためのXPath 1.0のパス選択ノードセットの最初のメンバーだけで
name(//*[contains(name(), "foo")])
結果と
私はXPath 2.0が2番目のものであることは知らなかった。それをサポートするCLIパーサはあまりないようです。 PythonやPHPで何かを書く必要があります。ありがとう! – miken32