使用XSLT从XML获取值并在变量中存储

时间:2013-03-25 08:32:58

标签: xml xslt xslt-1.0

<?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标签的值获取value标签的值(在本例中为'5')(在本例中为LEVEL)并使用XSLT将其存储在变量中,以便我可以使用变量后面。

知道我该怎么做?

2 个答案:

答案 0 :(得分:8)

你可以这样做:

<?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> 

应用于您的输入XML,您将获得此输出:

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

问候,彼得

答案 1 :(得分:1)

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

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

然后

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