Xml 避免自动关闭标记-Biztalk信封架构
在我的XSLT调用模板下面,我希望避免在值为空时使用自动关闭标记 如果没有值,则错误标记的输出为:Xml 避免自动关闭标记-Biztalk信封架构,xml,xslt,biztalk,Xml,Xslt,Biztalk,在我的XSLT调用模板下面,我希望避免在值为空时使用自动关闭标记 如果没有值,则错误标记的输出为: <ns0:Error /> 然而,我想得到的输出为 <ns0:Error></ns0:Error> 您可以选择将输出方法更改为“html”,这将防止自动关闭标记: <xsl:output method="html" indent="yes" /> 如果这不是一个选项,因为输出不是html,我假设它不是来自您的示例,那么您可能希望通过
<ns0:Error />
然而,我想得到的输出为
<ns0:Error></ns0:Error>
您可以选择将输出方法更改为“html”,这将防止自动关闭标记:
<xsl:output method="html" indent="yes" />
如果这不是一个选项,因为输出不是html,我假设它不是来自您的示例,那么您可能希望通过向元素中添加空白内容来欺骗XSLT
<xsl:variable name="blank" select="''"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
<xsl:value-of select="$blank"/>
</xsl:copy>
</xsl:template>
更正我的问题:我希望避免在值为空时使用自动关闭标记。如果没有值,则错误标记的输出为:但是,我希望获得输出,因为您的更正不清楚:是否希望输出元素具有空格字符而不是空字符?这是作为BizTalk映射中的内联调用模板脚本functoid完成的,还是完全在自定义XSLT中完成的?另外,您是否可以提供更多的信息来说明为什么有这个要求?这可能适用于某些处理器(例如libxslt),但不适用于其他处理器(Xalan、Saxon)。