В интернете есть ссылки, посвященные передаче переменной в другой шаблон. Я пытался следовать всем ссылкам, но я не могу получить значение, которое мне нужно заполнить. У меня есть этот XML-файл:получить значение переменной в другой шаблон
<Item>
<Test>
<ID>123345677</ID>
</Test>
<DisplayID>99884534</DisplayID>
</Item>
Мне нужно заполнить MsgID элемент, если DisplayID не равно нулю, в противном случае получить значение из ID. Мой XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="ID">
<xsl:variable name="IDV" select="substring(.,0,35)"/>
<xsl:apply-templates select="DisplayID">
<xsl:with-param name="IDP" select="$IDV"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="DisplayID">
<xsl:param name="IDP"/>
<xsl:element name="MsgId">
<xsl:choose>
<xsl:when test=".!='' or ./*">
<xsl:value-of select="substring(.,0,35)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="substring($IDP,0,35)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:template>
условие, если DisplayID не нуль работает, однако, если удалить значение DisplayID, нет никакой ценности получать от ID. Я не знаю, правильно ли я это делаю.
Ваш отзыв высоко оценен.
Непонятно, что вы подразумеваете под «нулем». Это может означать, что элемент вообще отсутствует, или это может означать, что элемент не имеет строкового значения. –