gpt4 book ai didi

xml - 使用 XSLT 将名称/值对 XML 转换为元素

转载 作者:行者123 更新时间:2023-12-04 05:51:21 25 4
gpt4 key购买 nike

我有一个由名称/值对组成的 XML 文件,我需要使用 xslt 1 的格式,其中每个“名称”是一个元素名称,其中包含内容中的值。下面是一个例子:

输入:

<Root>
<Entities>
<Entity EntityName="Client">
<Data Name="ADDR_City">Anytown</Data>
<Data Name="ADDR_State">SC</Data>
<Data Name="ADDR_Zip">23904</Data>
</Entity>
</Entities>
</Root>

输出:
<Root>
<Entities>
<Client>
<ADDR_City>Anytown</ADDR_City>
<ADDR_State>SC</ADDR_State>
<ADDR_Zip>23904</ADDR_Zip>
</Client>
</Entities>
</Root>

Client 的 EntityName 不一定是唯一可行的方法...我主要关心的是将 Data Name="... 字段转换为正确的格式。感谢您的帮助!

最佳答案

编辑:道歉 - 我错过了 Entity姓名。更新假设基数很多 <Entity> per <Entities> .我想我还需要指出,如果属性 EntityName 或 Name 具有无效的元素字符(例如空格),或者属性完全丢失,这将失败。

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>

<xsl:template match="/Root">
<Root>
<xsl:for-each select="Entities">
<Entities>
<xsl:for-each select="Entity">
<xsl:element name="{@EntityName}">
<xsl:for-each select="Data">
<xsl:element name="{@Name}">
<xsl:value-of select="./text()"/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</Entities>
</xsl:for-each>
</Root>
</xsl:template>
</xsl:stylesheet>

关于xml - 使用 XSLT 将名称/值对 XML 转换为元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9996928/

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