从XML获取值和使用XSLT存储变量


<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
<Result>
  <resultDetails>
    <resultDetailsData>
      <itemProperties>
        <ID>1</ID>
        <type>LEVEL</type> 
        <value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:int">5</value> 
      </itemProperties>
    </resultDetailsData>
  </resultDetails>
</Result>

我有上面描述的xml。我想使用type标记的值(在本例中为LEVEL)获得value标记的值(在本例中为'5'),并使用XSLT将其存储在一个变量中,以便以后可以使用该变量。

我该怎么做?

你可以这样做:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
version="1.0">
<xsl:template match="/">
    <xsl:variable name="myVar" select="Result/resultDetails/resultDetailsData/itemProperties/value"/>
<varoutput>
    <xsl:value-of select="$myVar"/>
</varoutput>
</xsl:template> 
</xsl:stylesheet>

应用于你的输入XML,你得到这样的输出:

<?xml version="1.0" encoding="UTF-8"?>
<varoutput>5</varoutput>

如果你想使用read变量来设置一个属性(即一行的颜色),你需要使用{$variable}如下

<xsl:variable name="rColor" select="rowColor"/>
然后

<fo:table-row background-color="{$rColor}">

相关内容

  • 没有找到相关文章

最新更新