1

以下は XML ファイルです -

<Chapters>
  <Chapter n="1">
    <Desc>....</Desc>
    <References>
       <BookRef>HTML : in 21 Days</BookRef>
       <Page>12, 13</Page>
       <BookRef>HTML : Unlimited</BookRef>
       <Page>21, 22</Page>
       <BookRef>The Complete Reference - HTML</BookRef>
       <Page>32-35</Page>
    </References>
  </Chapter>
  <Chapter n="2">
    <Desc>....</Desc>
    <References>
       <BookRef>HTML : in 21 Days</BookRef>
       <Page>52, 53</Page>
       <BookRef>The Complete Reference - HTML</BookRef>
       <Page>132-145</Page>
       <BookRef>The Complete Reference - Javascript</BookRef>
       <Page>132-145</Page>
    </References>
  </Chapter>
</Chapters> 

私はリストしようとしています - すべての含まれているHTML単語を使用して /Chapters/Chapter/References[BookRef contains text 'HTML']/BookRef

でも全部表示されてる…!! 同じものを取得するための XQuery は何になりますか?

4

3 に答える 3

3

あなたが欲しい

/Chapters/Chapter/References/BookRef[contains(., 'HTML')]
于 2012-05-18T13:11:21.090 に答える
3

次の方法を試してください。

/Chapters/Chapter/References/BookRef[. contains text 'HTML']

それ以外の場合、を含むノードを持つすべてのReferencesノードが返され、次のステップですべてのノードが返されます (つまり、どの BookRef ノードが検索されたトークンを持っていたかという情報が失われます)。BookRefHTMLBookRef

于 2012-05-18T13:10:17.037 に答える
2

XPath を使用 =/Chapters/Chapter/References/BookRef[contains(., 'HTML')]

于 2012-05-18T13:08:55.397 に答える