Xpath 在另一个节点中找到一个节点值部分匹配

Xpath find a node value matches in another node partially

我有这个XML:

<ref>
  <label>MCLaren, 1996</label>
  <year>1997</year>
</ref>
<ref>
  <label>Dhanvanth, 2016</label>
  <year>2016</year>
</ref>
<ref>
  <label>Darwin2 2001</label>
  <year>1997</year>
</ref>

如果需要显示与标签不匹配的年份值,我想根据相应标签中的上述标签值“MCLaren,1996”检查年份值“1997”,XPath 中预期的答案

我试过下面的代码:

/ref[descendant::label != descendant::year[contains(text(),'')]]

我不确定,如果我理解你想要的是正确的,但是下面的 XPath:

/root/ref[not(contains(descendant::label/text(), descendant::year/text()))]

returns 所有参考文献,其中年份文本未包含在标签文本中

输出

<ref>
  <label>MCLaren, 1996</label>
  <year>1997</year>
</ref>
<ref>
  <label>Darwin2 2001</label>
  <year>1997</year>
</ref>