Xml XSLT使用for each来应用模板

Xml XSLT使用for each来应用模板,xml,xslt,soap,Xml,Xslt,Soap,所以,我刚才问了一个问题: xxxxxxxx XXX 服务提供商 2014-09-26T13:19:30.534Z 现在我有了样式表 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:cass="http://blahblahblah" xmlns:head="h

所以,我刚才问了一个问题:


xxxxxxxx
XXX
服务提供商
2014-09-26T13:19:30.534Z
现在我有了样式表

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:cass="http://blahblahblah" xmlns:head="http://www/example.com" exclude-result-prefixes="soap cass head">
   <xsl:output method="xml" indent="yes"/>
   <xsl:template match="soap:Header" />
   <xsl:template match="cass:SPD">
            <xsl:for-each select=".//cass:SP">
                <xsl:apply-templates select="*/cass:SPM"/>
                <xsl:apply-templates select="*/cass:RQ"/>
                <xsl:apply-templates select="*/cass:SP"/>
            </xsl:for-each>
        </xsl:template>


        <xsl:template match="*/cass:RQ">
        <RT>
            <xsl:value-of select="@RT"/>
        </RT>
        <FG>
            <xsl:value-of select="@FG"/>
        </FG>
        <PD>
            <xsl:value-of select="@PD"/>
        </PD>
        </xsl:template>

        <xsl:template match="*/cass:SPM">
            <MESSAGE_TXT>
                <xsl:value-of select="@MessageText"/>
            </MESSAGE_TXT>
        </xsl:template>
</xsl:stylesheet>


所以,基本上对于每个cass:SP,我想生成单独的EVAPP_SP元素,它有从xml的不同部分选择的节点。我希望这足够清楚,我不擅长阐明这个问题。

问题发生在模板匹配
cass:SPD

<xsl:template match="cass:SPD">
    <xsl:for-each select=".//cass:SP">
        <xsl:apply-templates select="*/cass:SPM"/>
        <xsl:apply-templates select="*/cass:RQ"/>
        <xsl:apply-templates select="*/cass:SP"/>
    </xsl:for-each>
</xsl:template>

这至少会给出一些输出。

xsl:template元素必须是顶级元素(xsl:stylesheet的子元素),而
xsl:for each
只能出现在模板内部。好的,我更新了它,但是我仍然得到一个空白的xml输出。
xsl:template
元素需要是
xsl:stylesheet
的子元素,而不是
调用引擎响应的子元素。你确定你的代码没有出错吗?嘿,如果我听不懂你说的话,我真的很抱歉。我更新了问题中的样式表。还是错了吗?我删除了所有其他的附加标记,稍后我会添加它们。样式表现在很好,但仍然不会产生任何输出。请以XML而不是散文形式显示您期望的输出。谢谢
<xsl:template match="cass:SPD">
    <xsl:for-each select=".//cass:SP">
        <xsl:apply-templates select="*/cass:SPM"/>
        <xsl:apply-templates select="*/cass:RQ"/>
        <xsl:apply-templates select="*/cass:SP"/>
    </xsl:for-each>
</xsl:template>
<xsl:template match="cass:SPD">
    <xsl:apply-templates select="*/cass:SPM"/>
    <xsl:apply-templates select="*/cass:RQ"/>
    <xsl:apply-templates select="*/cass:SP"/>
</xsl:template>