XSLT - 如何通过变量打印值?

时间:2016-01-27 13:19:00

标签: xml xslt xpath

 <table tableName="Something">
     <item table="Something">
       <column columnName="SomeID">someValue</column>

大家好 - 上面是我的XML源代码的结构。

我想创建一个XSLT变量,在使用

时打印出“SomeID”的“someValue”

我无法弄清楚正确的xpath语法来实现这一点。我需要这两个用于打印值和调节。条件需要测试“SomeID”是否为空 - 我将如何解决这个问题?

我希望有人能够提供帮助。

非常感谢。

1 个答案:

答案 0 :(得分:0)

如果我正确理解您要做的事情,请按

创建变量
<xsl:variable name="SomeIDValue" select="//column[@columnName='SomeID']"/>

然后,您可以通过

输出
<xsl:value-of select="$SomeIDValue"/>

通过

测试它是否为空
<xsl:if test="$SomeIDValue != ''"><!-- What to do --></xsl:if>

例如, Example.xml

<table tableName="Something">
    <item table="Something">
        <column columnName="SomeID">someValue</column>
        <column columnName="SomeID2"/>
    </item>
</table>

以及 Example.xsl

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:variable name="SomeIDValue" select="//column[@columnName='SomeID']"/>
    <xsl:variable name="SomeIDValue2" select="//column[@columnName='SomeID2']"/>

    <xsl:template match="/">
        <xsl:if test="$SomeIDValue != ''">SomeID is not empty and is equal to '<xsl:value-of select="$SomeIDValue"/>'.</xsl:if>
        <xsl:if test="$SomeIDValue2 != ''">SomeID2 is not empty and is equal to '<xsl:value-of select="$SomeIDValue2"/>'.</xsl:if>
    </xsl:template>

</xsl:stylesheet>

使用xsl转换xml将导致

的输出
SomeID is not empty and is equal to 'someValue'.