0

このxmlドキュメントを持つ

<root>
<bookstore>
    <presc:book>
        <presc:id>1</presc:id>
        <presc:title>Harry Potter</presc:title>
        <presc:price>29.99</presc:price>
    </presc:book>
    <presc:book>
        <presc:id>2</presc:id>
        <presc:title>Learning XML</presc:title>
        <presc:price>39.95</presc:price>
    </presc:book>
    <presc:book>
        <presc:id>3</presc:id>
        <presc:title>Java for Life</presc:title>
        <presc:price>54.49</presc:price>
    </presc:book>
</bookstore>
</root> 

「pres:id」=2 の場合にのみ「presc:price」の値を取得したいと思います。

助けてくれてありがとう。

4

2 に答える 2

0

<root>まず、ドキュメントの最後でノードを閉じる必要があります。
次に、名前空間が宣言されていないため、次のように関数presc:を使用する必要があります。local-name()

//*[local-name() = 'price' and ../id=2]
于 2013-01-21T21:51:18.763 に答える
0

この XML で名前空間が宣言されていprescて、使用している XML API で同じ名前空間を宣言した場合、アクセスしようとしているノードは次のようになります。

/root/bookstore/presc:book[presc:id = 2]/presc:price

XML で名前空間が宣言されていても、使用している XML API でそれらを宣言する方法がわからない場合は、次のようにして価格を見つけることができます。

//*[*[local-name() = 'id'] = 2]/*[local-name() = 'price'] 

現状では、XML は現在使用できません。

于 2013-01-22T02:47:30.453 に答える