web-dev-qa-db-ja.com

XPATHで要素の名前を取得する

XPATHを使用して要素を選択した場合、その名前を取得するにはどうすればよいですか?
私はtext()//element/[@id=elid]/text() functionのようなものを意味します。

25
RYN

name() を使用します。 (XPath言語の新しいバージョンのドキュメントを検索 here 。)

例の修正版は次のとおりです。

XPath 2.0のみで動作:

_//element/*[@id='elid']/name()
_

XPath 1.0および2.0で動作:

_name(//element/*[@id='elid'])
_

local-name() を使用することもできます。これは 拡張名 のローカル部分を返します(名前空間プレフィックスなし)。

51
Daniel Haley

タグ名ツリーは次の方法でも取得できます。

echo "du //Element/*" | xmllint --Shell response-02.xml
Ele1
    id
    name
    Nested1
        id
        name
Ele2
2
Luis Muñoz