执行 XSLT 转换后无法从 XML 读取参数



>我有下面的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>

相关内容

  • 没有找到相关文章

最新更新