将唯一ID添加到csv输出

时间:2012-09-12 15:33:45

标签: xml xslt xpath

我的代码成功将xml文件转换为csv,结束用逗号(,)创建的数据

示例数据

<Addy>
 <Rowinfo>
<LD>FLAT</LD>
<L>1</L>
<Th> Passage</Th>
</Rowinfo>
 <Addy> 

生成

的csv输出
FLAT,1,Passage,

打开此文件并添加一列以为其提供唯一ID,例如1,2,3 ...

1,FLAT,1,Passage,
2,FLAT,1,Passage,

最后的逗号消失了

 1,FLAT,1,Passage
 2,FLAT,2,okete

XSLT可以在生成csv输出的过程中自动分配这些唯一的数字吗?

2 个答案:

答案 0 :(得分:1)

用于XPath的函数也可以在XSLT中使用。可能这三个中的一个可能有所帮助:

  • fn:Id(又名fn:element-with-id)
  • FN:的Id-REF
  • FN:位置

最后一个看起来特别有希望。如果你相对于RowInfo节点执行它,你可能会得到一个很好的干净的升序数值。

答案 1 :(得分:1)

只需添加两行......

将第二行添加到您的第一个模板...

<xsl:template match="/">
 <xsl:value-of select="'Id,'" />
 etc.

将第二行添加到第二个模板...

<xsl:template match="*" mode="row">
 <xsl:value-of select="concat(position(),',')" />
 etc.

现在你得到的csv输出就像......

Id,LD,L,Th
1,FLAT,1, Passage

...第一列('Id')是唯一ID。 (序数行号,实际上。)