【发布时间】:2019-10-03 20:53:31
【问题描述】:
我正在努力使用 xslt 创建一个 Excel,它将通过公共属性值链接(连接)同一级别上的两个节点。
这里是输入xml:
```
<Nodes>
<Item name="ABC" category_id="A"></Item>
<Item name="DEF" category_id="B"></Item>
<Category name="First category" cat_id="A"</Category>
<Category name="Second category" cat_id="B"</Category>
</Nodes>```
和 xsl 的一部分:
<xsl:for-each select="//tc:Nodes/tc:Item">
<xsl:variable name="item_name" select="./@Name" />
<xsl:variable name="item_category_id" select="./@category_id" />
<xsl:for-each select="//tc:Nodes:tc:Category/@cat_id = $category_id">
<xsl:variable name="category_category_id" select="./@cat_id />
</xsl:for-each>
<xsl:call-template name="generateReportData">
<xsl:with-param name="item_name" select="$item_name"/>
<xsl:with-param name="item_category_id" select="$item_category_id" />
**<xsl:with-param name="category_category_id" select="$category_category_id"/>**
</xsl:call-template>
</xsl:for-each>
问题是我无法访问变量 $category_category_id 因为它说它要么未定义要么超出范围。
结果应该有一行包含以下值:ABC、A、第一个类别(它将通过公共类别 ID 链接来自两个节点的值)。请帮助 - 我是 xsl 的新手 - 也许还有另一种方法。
问候,卢克
【问题讨论】: