2012-05-04 21 views
0

私はこの一日のうちに頭を抱えようとしています。方法。xpathを工夫して完全なxpathだけでなく、参照される子要素の値も含むようにする方法

明示的でわかりやすいxpathと葉の子要素のデータ項目からなるXPATHを作成しようとしています。

/bookstore[3]/book[4]/titleは、xpathの良い例です。

これは、書店番号3の書籍番号4のタイトルを返す必要があります。これが良いとします。

しかし、私はこのタイトルを埋め込みたいと思います。どちらの方法で試しても間違っているようです。その目的は、有効なxpathであるエラーコードを自分のアプリケーションに作成することです。違反した項目の場所と値を表示します。

だから、明らかに最初の試みでした:

/bookstore[3]/book[title="oxford dictionary]/title 

これは良いですが、書店は、オックスフォード辞書の数百を持っていると私は唯一の4番

たいので、私は多くの亜種などこれらを試してみました。 ..そしてすべてがオンラインの構文チェッカーに失敗しました。

/bookstore[3]/book[[4] and title="oxford dictionary]/title 
/bookstore[3]/book[4]/title | /bookstore[3]/book[title=oxford dictionary]/title 

明示的なXPATHを含める方法や、リーフ要素のコンテンツに触れる方法については、歓迎します。

よろしくお願いいたします。

+1

ルート要素が1つしかないと仮定すると、/ bookstore [3]をどのように持つことができますか? –

答えて

0
  1. あなたが /bookstore/book[@title="oxford dictionary"][4]/attribute::name

使用することができますタグの属性のテキストコンテンツを取得するには /bookstore/book[@title="oxford dictionary"][4]/title/text()

  • を使用することができ、タグ本文のテキストコンテンツを取得するには最初の式は "Some Text 4"を返します。
    2番目の式は、 "title4"を返します。これはxmlで評価されます。

    <bookstore> 
        <book title="oxford dictionary"> 
         <title name="title1">Some Title 1</title> 
        </book> 
        <book title="oxford dictionary"> 
         <title name="title2">Some Title 2</title> 
        </book> 
        <book title="oxford dictionary"> 
         <title name="title3">Some Title 3</title> 
        </book> 
        <book title="oxford dictionary"> 
         <title name="title4">Some Title 4</title> 
        </book> 
    </bookstore> 
    
  • 関連する問題