>我有下面的xml..
<?xml version="1.0" encoding="UTF-8"?>
<Report name="DB232 Report">
<rptHdr>
<exchNam>CAG</exchNam>
<rptCod>RP202</rptCod>
<rptNam>ory Report</rptNam>
<membLglNam>XYZ Germany</membLglNam>
<membId>XY</membId>
<rptPrntEffDat>2013-07-18T23:59:00</rptPrntEffDat>
<rptPrntRunDat>2013-07-18</rptPrntRunDat>
</rptHdr>
<reportNameGrp>
</Report>
现在我正在编写关于 xslt 1.0 的 xslt 我已经开发了下面的 xslt 现在从上面的 xml 我想读取参数 exchNam,其值为 CAG ,我的 xslt 如下所示
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:java="http://xml.apache.org/xslt/java"
exclude-result-prefixes="java">
<xsl:template match="/Report">
<pprexMessageObject>
<xsl:choose>
<xsl:when test="/Report/rptHdr/rptNam='ory Report'">
<xsl:call-template name="rexReportHeader_template">
<xsl:with-param name="reportheader" select="/Report/rptHdr" />
</xsl:call-template>
</xsl:when>
</xsl:choose>
</EurexMessageObject>
</xsl:template>
<xsl:template name="rexReportHeader_template">
<xsl:param name="reportheader" />
<rexMessageObject>
<exchNam>
<xsl:value-of select="$reportheader/exchNam"/>
</exchNam>
</pprexMessageObject>
</xsl:template>
</xsl:stylesheet>
但是转换后我仍然无法查看 exchNam 参数的值,请告知我的 XSLT 中出了什么问题
乡亲们请指教
1- "reportNameGrp" 没有结束标签。更正它。
2-删除所有匹配的第一个"/",选择并测试参数。告知模板匹配报表标记后,无需将其添加到 XML 路径。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:java="http://xml.apache.org/xslt/java"
exclude-result-prefixes="java">
<xsl:template match="Report">
<pprexMessageObject>
<xsl:choose>
<xsl:when test="rptHdr/rptNam='ory Report'">
<xsl:call-template name="rexReportHeader_template">
<xsl:with-param name="reportheader" select="rptHdr" />
</xsl:call-template>
</xsl:when>
</xsl:choose>
</EurexMessageObject>
</xsl:template>
<xsl:template name="rexReportHeader_template">
<xsl:param name="reportheader" />
<rexMessageObject>
<exchNam>
<xsl:value-of select="$reportheader/exchNam"/>
</exchNam>
</pprexMessageObject>
</xsl:template>
</xsl:stylesheet>