我有一个XML文件看起来像下面是什么目的的<xsl:调用模板...>
- <select1>
- <sel_details>
<type>Primary Type</type>
<name>Some Name</name>
<id>ID Num</id>
<sel_details>
.....
<select1>
和XSL看起来像这样
<xsl:for-each select="//select1">
<xsl:call-template name="sel_details" />
<xsl:with-param name="xmlSection" select="sel_details" />
</xsl:call-template>
<xsl:call-template name="....." />
<xsl:with-param name="xmlSection" select="....." />
</xsl:call-template>
..........
</xsl:for-each>
<xsl:template name="sel_details">
<xsl:param name="xmlSection" />
<xsl:for-each select="xmlSection">
<xsl:value-of select="./type" />
</xsl:for-each>
</xsl:template>
是什么目的<xsl:call-template...>
然后<xsl:template name...>
?
如果我只写3这样的线,我能得到相同的值:在一个普通的编程语言
<xsl:for-each select="//select1/sel_details">
<xsl:value-of select="./type" />
</xsl:for-each>
非常感谢MathiasMüller!你的解释非常清楚直接! –
嗨Mathias,关于你提到的'在几个地方重复使用代码块以避免重复',并且我也阅读了你提供的链接(至少广义而言),这是一个很好的问题和答案。非常感谢!我也有同样的担忧:例如,我声明了模板名称A,并选择了显示在页面顶部的值。然后,在页面结尾处,模板A的值必须再次显示,我试着''它不像预期的那样工作!我收到一个错误:“无法将#STRING转换为NodeList”如何让它工作?请指导。谢谢! –
@abcidd评论部分不是提出一个新的,无关的问题的地方。开始一个新的问题帖子来做到这一点。然后我很高兴回答 - 或者别人会。但是请确保从头开始包含以下信息:完整的输入XML文档,完整的XSLT样式表,错误描述和您希望拥有的XML输出。 –