我有一个XML文件,如下所示
- <alert>
- <adv_details>
<type>Primary Type</type>
<name>Some Name</name>
<id>ID Num</id>
<adv_details>
.....
<alert>
我的XSL看起来像这样
<fo:flow flow-name="xsl-region-body">
<xsl:attribute name="font-size"><xsl:value-of select="$font-size"/></xsl:attribute>
<fo:block>
<xsl:for-each select="//alert">
<xsl:call-template name="alert_details">
<xsl:with-param name="xmlSection" select="./alert_details"/>
</xsl:call-template>
......
然后我尝试到达节点<adv_details>
内的元素的每个值。
首先,我声明此模板名称<xsl:template name="alert_details">
,整个代码为
<xsl:template name="alert_details">
<fo:table>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block >
<xsl:value-of select="./@type"/>
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block >
<xsl:value-of select="./@name"/>
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block >
<xsl:value-of select="./id"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</xsl:template>
它没有显示价值!
我认为这是一种正确的方式。首先,我有 - 每次选择=&#34; //警报,然后我有<xsl:with-param name="xmlSection" select="./alert_details"/>
,最后,我选择alert_details内的每个节点,但不知何故,这些值不会显示出来。
请帮忙。
答案 0 :(得分:0)
在模板中,上下文节点(= .
表达式)是<alert>
元素。
实际上,您需要查询xmlSection参数的类型子元素。
因此,在模板中明确声明参数xmlSection:
<xsl:template name="alert_details">
<xsl:param name="xmlSection"/>
...
并在您的选择中使用它:
<xsl:value-of select="$xmlSection/type"/>