Как узнать, существует ли тег в глубоко вложенном xml с помощью xslt? - PullRequest
0 голосов
/ 03 октября 2018

У меня есть 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 голосов
/ 03 октября 2018

Вы можете просто сделать это выражение ...

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

Это будет работать, где бы вы ни находились в XML.Если вы хотите проверить только потомков текущего узла, сделайте это

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

Что является сокращением для этого ...

<xsl:if test="descendant-or-self::d[. = 'xyz']">   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...