我正在处理以下xml文件:
<relational:BaseTable name="Table1">
<columns name="Column1" Type="Number" </columns>
<columns name="Column2" Type="Date" </columns>
....
我想像这样创建一个CSV文件
Table1, Column1, Number
Table1, Column1, Date
Table2, ...
我已经想出如何循环遍历xml并将输出格式化为csv。缺少以下代码的方法是在每行的开头重复表的名称。我无法弄清楚如何引用父(关系:BaseTable)标记的“name”属性。
<xsl:for-each select="relational:BaseTable">
<xsl:for-each select="columns">
<xsl:value-of select="@name"/>,<xsl:value-of select="@type"/>
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:for-each>
由于
答案 0 :(得分:1)
要访问BaseTable
的{{1}}属性,您只需稍微向上移动一下:
@name
请注意,即使属性名称不相同,您也需要执行此操作,因为当前引用上下文是<xsl:value-of select="../@name"/>,<xsl:value-of select="@name"/>,<xsl:value-of select="@type"/>
元素。
我还建议将上述行简化为单个columns
:
value-of