gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:03:17 24 4
gpt4 key购买 nike

我从外部源获得了一个 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 文件中,我做了以下“希望”它能获得第二个 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,'&#xA;')"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

这给了我:

owner,address,citystate,yearbuilt
Name1,House1,House1,Year1
Name2,House2,House2,Year2

有什么技巧可以做到这一点吗?我无法从发起者处更改属性名称,因此我只能使用它们。预先感谢您。

最佳答案

用途:

houseAddress[2]

获取第二次出现的 houseAddress 元素的值。

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

关于java - 使用java和xsl将xml转换为csv时如何处理重复的节点名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34661376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com