0

オンライン XPath エバリュエーターとしてhttp://xpath.online-toolz.com/tools/xpath-editor.phpを使用しています。他にもいくつか試しましたが同じでした

私のxmlには次のものがあります:-

<?xml version="1.0"?>
<test xmlns="abc">
</test>

これで、XPath クエリ

/
.

私に出力を与えます:-

<test xmlns="abc">
</test>

ただし、クエリは

test
/test
//test

何も出力しないでください。私は非常に基本的な間違いをしていますが、何がわかりません。名前空間と関係があると思いますが、クエリを次のように変更します

abc:test

無効な式エラーが発生するため、どちらも役に立ちません。

http://www.w3schools.com/xpath http://www.tizag.com/xmlTutorial/xpathtutorial.php & http://oreilly.com/perl/excerpts/system-admin-with-perlを使用しています/ten-minute-xpath-utorial.html

XPath チュートリアルのソースとして。

4

1 に答える 1

1

ターゲットファイルに明示的な名前空間プレフィックスはありませんが、それでもそれらに対応する必要があります。あなたは書ける

/*[local-name()='test' and namespace-uri()='abc']

「abc」はnamespaceURIであり、名前空間プレフィックスではありません。ほとんどのツールが次のようなURI形式でテストするため、おそらく無効です。

http://www.abc.com/

より良いファイルは次のようになります。

<test xmlns="http://www.abc.com">
</test>

クエリが次のようになる場合:

/*[local-name()='test' and namespace-uri()='http://www.abc.com/']

私はあなたのサイトでこれをテストしました、そしてそれは働きます。

フォーム

abc:test

abcプレフィックスを設定するメカニズムに依存し'http://www.abc.com/'、サイトにメカニズムがないようです

于 2012-06-28T18:34:24.193 に答える