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 text 'HTML']

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

于 2012-05-18T13:10:17.037 回答
3

你想要

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

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

于 2012-05-18T13:08:55.397 回答