Xml 向csv输出添加唯一id

Xml 向csv输出添加唯一id,xml,xslt,xpath,Xml,Xslt,Xpath,my codes成功地将xml文件转换为csv,并以逗号(,)结束创建的数据 样本数据 <Addy> <Rowinfo> <LD>FLAT</LD> <L>1</L> <Th> Passage</Th> </Rowinfo> <Addy> 打开此文件并添加列以赋予其唯一ID时,如1,2,3 1,FLAT,1,Passage, 2,FLAT,1,Passage, 结尾的

my codes成功地将xml文件转换为csv,并以逗号(,)结束创建的数据

样本数据

<Addy>
 <Rowinfo>
<LD>FLAT</LD>
<L>1</L>
<Th> Passage</Th>
</Rowinfo>
 <Addy> 
打开此文件并添加列以赋予其唯一ID时,如1,2,3

1,FLAT,1,Passage,
2,FLAT,1,Passage,
结尾的逗号消失了

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

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

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

  • fn:Id(又名fn:Id元素)
  • fn:Id-ref
  • fn:位置
最后一个看起来特别有希望。如果您针对
RowInfo
节点执行它,您可能会从中得到一个干净的升序数值。

只需添加两行

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

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

…其中第一列('Id')是唯一的Id(事实上是一个有序的行号)。

@Brent Arias,如果您能带我了解一下,我将很高兴,因为我打算将其添加到以下代码中
<xsl:template match="*" mode="row">
 <xsl:value-of select="concat(position(),',')" />
 etc.
Id,LD,L,Th
1,FLAT,1, Passage