如何使用xslt查找深层xml中是否存在标签?

时间:2018-10-03 07:19:26

标签: xml xslt

我有一个类似xml

<a>
 <b>
  <c>
  </c>
  <c>
   <d>xyz</d>
  </c>
 </b>
 <b>
  <c>
  </c>
  <c>
  </c>
 </b>
 <b>
  <c>
  </c>
 </b>
</a>

我想检查标签“ d”是否存在以及它是否具有值xyz?我该怎么办?

当前,我通过对每个循环使用嵌套三次来做到这一点。有什么更好/直接的方法吗? 预先感谢。

1 个答案:

答案 0 :(得分:0)

您可以简单地执行此表达式...

<xsl:if test="//d[. = 'xyz']">

无论您位于XML的何处,它都可以使用。如果您只想检查当前节点的后代,请执行此操作

<xsl:if test=".//d[. = 'xyz']">   

哪个是这个的简写...

<xsl:if test="descendant-or-self::d[. = 'xyz']">