1

xmlstarlet で xmlns 属性の値を選択するにはどうすればよいですか?

で試しました

xml sel -t -v //@xmlns input.xml

しかし、結果は得られませんでした。一方で

xml sel -t -v //@id input.xml

期待どおりにすべてのIDを出力します。xmlns の前に名前空間を付ける必要がありますか? はいの場合、それはどれですか?

4

1 に答える 1

1

XPath データモデルでは、属性と名前空間は別の種類のノードです。ソース XML の名前空間宣言は、属性ノードではなくデータ モデルの名前空間ノードになり、属性軸ではなく名前空間軸を使用して選択されます。名前空間ノードでは、名前は名前空間プレフィックスであり、値は名前空間 URI です。ドキュメント内のすべてのデフォルト (名前のない) 名前空間ノードを見つけたい場合は、//namespace::*[name()='']

于 2013-05-23T21:24:02.327 に答える