我从外部源获得了一个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>
我已经将我的java代码放在一起并且可以解析xml但我需要帮助处理重复的属性名称。我希望我的csv文件如下所示:
owner,address,citystate,yearbuilt
Name1,House1,CityState1,Year1
Name2,House2,CityState2,Year2
在我的xsl文件中,我做了以下操作&#34;希望&#34;它会得到第二个houseAddress,但它没有:
<?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,'
')"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
那给了我:
owner,address,citystate,yearbuilt
Name1,House1,House1,Year1
Name2,House2,House2,Year2
这样做有诀窍吗?我无法从发起人处更改属性名称,因此我坚持使用它们。提前谢谢。
答案 0 :(得分:2)
使用:
houseAddress[2]
获取第二次出现houseAddress
元素的值。
请注意,我们在这里假设XSLT 1.0。