@beduin01

Как проверить существует ли участок дерева в XML?

Интересует любой способ проверить существует ли ветка в дереве XML. В xpath нашел возможность проверять только существование отдельных тегов. А нужна возможность проверки существования дерева вида foo/bar/baz
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Roman-Fov
Так посчитать их же
XML
<root>
	<foo>
		<bar>
			<baz>asdf</baz>
			<text>text1</text>
		</bar>
	</foo>
	<foo>
		<bar>
			<text>text2</text>
		</bar>
	</foo>
	<foo>
		<bar>
			<baz>3</baz>
			<text>text3</text>
		</bar>
	</foo>
</root>


XSLt
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/root">
    <xsl:apply-templates select="foo"/>
  </xsl:template>

  <xsl:template match="foo">
    <h1 style="color:red;">
      <xsl:attribute name="style">
        <xsl:choose>
          <xsl:when test="count(bar/baz) &gt; 0">
            <xsl:text>color: red;</xsl:text>
          </xsl:when>
          <xsl:otherwise>
            <xsl:text>color: green;</xsl:text>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:attribute>
      <xsl:apply-templates select="bar/text"/>
    </h1>
  </xsl:template>
</xsl:stylesheet>


Result
<h1 style="color: red;">text1</h1>
<h1 style="color: green;">text2</h1>
<h1 style="color: red;">text3</h1>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы