使用java和xsl将xml转换为csv时如何处理重复的节点名称

使用java和xsl将xml转换为csv时如何处理重复的节点名称,java,xml,csv,xslt,Java,Xml,Csv,Xslt,我收到一个来自外部源的xml文件(因此我无法控制属性名),不幸的是,它们对成对的数据集使用相同的名称。我似乎不知道如何访问第二个值。xml文件中的数据示例如下: <?xml version="1.0"?> <addressResponse> <results> <ownerName>Name1</ownerName> <houseAddress>House1</houseAddress>

我收到一个来自外部源的xml文件(因此我无法控制属性名),不幸的是,它们对成对的数据集使用相同的名称。我似乎不知道如何访问第二个值。xml文件中的数据示例如下:

<?xml version="1.0"?>
<addressResponse>
  <results>
      <ownerName>Name1</ownerName>
      <houseAddress>House1</houseAddress>
      <houseAddress>CityState1</houseAddress>
      <yearBuilt>Year1</yearBuilt>
  </results>
  <results>
      <ownerName>Name2</ownerName>
      <houseAddress>House2</houseAddress>
      <houseAddress>CityState2</houseAddress>
      <yearBuilt>Year2</yearBuilt>
  </results>
</addressResponse>
在我的xsl文件中,我做了以下“希望”它能得到第二个家庭地址,但它没有:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" >
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/">owner,address,citystate,yearbuilt
<xsl:for-each select="//results>
    <xsl:value-of select="concat(ownerName,',',houseAddress,',',houseAddress,',',yearBuilt,'&#xA;')"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
这有什么诀窍吗?我无法从发起人处更改属性名称,因此我只能使用它们。提前感谢。

使用:

houseAddress[2]
获取
houseAddress
元素第二次出现的值


请注意,我们在这里假设XSLT 1.0。

这是无效的XSLT代码,它不会生成声明的结果。我是手工输入的,所以可能出错了。我要加倍check@michael.hor257k我确实有打字错误,抱歉,就这么简单?很抱歉浪费了你的时间。我搜索了一个答案,但没有看到这样的答案。谢谢你的解答。@Salome如果你的问题得到了回答,请接受答案,结束提问。
owner,address,citystate,yearbuilt
Name1,House1,House1,Year1
Name2,House2,House2,Year2
houseAddress[2]