XPATH选择包含父元素

时间:2017-03-20 16:56:44

标签: xml xpath

我正在寻找一个XPATH表达式,它选择子节点,只要它包含父元素的整个文本节点。 e.g:

<title><italic>Here is my title</italic></title>

(这里我想选择斜体,因为它包含其父级的全部内容。 但我不想选择:

<title>Here is my <italic>italic</italic> title</title>

<title><bold>Here is my </bold><italic>italic title</italic></title>

(此处,斜体仅包含父文本的一部分)

有什么想法吗? 谢谢! 弗兰齐斯卡

1 个答案:

答案 0 :(得分:1)

这个XPath,

/*//*[. = ..]

将选择根元素下面的所有元素,其字符串值等于其父元素的值。

所以,对于这个XML,

<r>
  <title><italic>Here is my title</italic></title>
  <title>Here is my <italic>italic</italic> title</title>
  <title><bold>Here is my </bold><italic>italic title</italic></title>
  <title><italic><bold>Another</bold></italic><italic> case</italic></title>
</r>

以下元素,

<italic>Here is my title</italic>    
<bold>Another</bold>

将被选中。