0

我正在尝试从 XHTML 文档中提取内容——在该文档中,在一个 div 中,有许多“b”元素,每个元素后跟一个链接。

例如——

<div id="main">
    <b> Bold text 1</b>
    <a href="http://link.com/"> some link 1</a>
      <b> Bold text 2</b>
    <a href="http://link.com/"> some link 2</a>     
    <b> ABRACADABRA</b>
    <a href="http://link.com/"> abracadbralink</a>
</div>

现在,我想提取链接“abracadabralink”——问题是,我不知道在这个特定链接之前有多少和元素——在不同的文档中有不同数量的这样的元素——有时有很多链接紧接在一个元素之后——我所知道的是,在我想要的链接之前出现的元素的文本始终是固定的。

所以唯一固定的信息是我希望在具有已知文本的元素之后立即链接——我如何使用 XQuery 获得这个链接?

4

2 回答 2

0

我想以下内容应该适合您:

$yournode/b[. = ' ABRACADABRA']/following-sibling::a/@href/string()
于 2012-09-04T14:34:46.417 回答
0

如果我猜对了,您对@href属性的值感兴趣吗?这可以使用标准 XPath 语法来完成:

doc('yourdoc.xml')//*[. = ' abracadbralink']/@href/string()

有关 XPath 的更多信息,我建议您查看一些在线教程,例如http://www.w3schools.com/xpath/default.asp

于 2012-09-04T13:34:55.423 回答