#xml #xslt
#xml #xslt
Вопрос:
У меня есть этот xml
<game>
<genre>
<action>...</action>
<racing>...</racing>
<price>
..
..
</price>
</genre>
</game>
Я хочу проверить, присутствует ли узел price в xml с помощью xsl. как я могу это сделать? если присутствует узел с ценой, то вызовите определенный, template
иначе вызовите другой template
Ответ №1:
Вы могли бы просто вызвать xsl:apply-templates
с атрибутом match, установленным для имени элемента. Если элемент существует, вызывается шаблон. Если он не существует, шаблон вызываться не будет. Если вы пытаетесь создать оператор if-else, вы могли бы проверить его существование следующим образом
<xsl:choose>
<xsl:when test="boolean(price)">
<!-- do something -->
</xsl:when>
<xsl:otherwise>
<!-- do something else -->
</xsl:otherwise>
</xsl:choose>
Таким образом, вы можете проверить наличие элемента и отреагировать соответствующим образом.
Комментарии:
1.Некоторые документы по этому поводу:w3.org/TR/xpath-functions/#func-boolean msdn.microsoft.com/en-us/library/ms256159.aspx