使用XQuery获得不正确的结果?

时间:2012-05-18 13:00:34

标签: xml xpath xquery

以下是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来检索它?

3 个答案:

答案 0 :(得分:3)

尝试以下方法:

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

否则,将返回所有References个节点,其中BookRef节点包含HTML,并且以下步骤将返回所有BookRef个节点(即,您丢失了哪些BookRef节点具有搜索到的令牌的信息。

答案 1 :(得分:3)

你想要

/Chapters/Chapter/References/BookRef[contains(., 'HTML')]

答案 2 :(得分:2)

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