1

假设我的文件的一部分是

<div>
  <b>Hello,</b> world!
</div>
<div>
  <span>
    <b>This</b> is a <b>wonderful</b> day!
  </span>
</div>

我想选择第一个div,即一个子元素为equal的div,<b>Hello,</b> world!表达式怎么写。还有第二个呢?

//div[text()[1] = ' world' and child::b[position()=1 and text='Hello,']]当然,我可以有一个像

理想情况下,如果有一个函数会很好subtreeequals它返回子树并分别比较两棵树,所以我可以简单地编写equals(subtree(), '<span><b>This</b> is a <b>wonderful</b> day!</span>').

有什么想法吗?有没有适合我需要的功能?谢谢。

4

1 回答 1

0

如果您想在文档中找到第一个 div,请使用/descendant::div[1]-- 或 --(//div)[1]注意括号,它们需要在此处获得正确的行为。

比较两个元素是一个更复杂的问题。XPath 1 没有为此内置任何东西。一些环境将支持 XPath 2,它定义了deep-equal()——参见http://www.w3.org/TR/2005/CR-xpath-functions-20051103/#func-deep-equal

于 2013-06-07T03:16:30.867 回答