gpt4 book ai didi

xml - XSLT 转换

转载 作者:数据小太阳 更新时间:2023-10-29 02:41:53 26 4
gpt4 key购买 nike

我有一个 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<Batch BatchID="896" BatchName="20120629.130504">
<Document DocumentType="XML Question">
<Fields>
<Field FieldName="Doc_ID">1</Field>
<Field FieldName="Vendor_Code">126400</Field>
<Field FieldName="Property_Code">10519</Field>
<Field FieldName="Invoice_Num">20509</Field>
</Fields><Files />
</Document>
</Batch>

我想使用 XSLT 文件将其转换为如下所示:

<?xml version="1.0" standalone="yes"?>
<ABCRelease>
<ABC>
<Doc_Id>1345</Doc_Id>
<Vendor_Code>134500</Vendor_Code>
<Property_Code>105559</Property_Code>
<Invoice_Num>2034539</Invoice_Num>
</ABC>
</ABCRelease>

我是第一次接触 XML,今天我花了很多时间没有深入了解这个主题并进行了大量搜索。有没有人能够帮助我并提供一些示例代码来实现这一点?

我的问题是提取 FieldName 值并将其插入 <> 例如来自:

<Field FieldName="Doc_ID">1</Field>

<Doc_Id>1345</Doc_Id>

非常感谢您的帮助。

史蒂文

最佳答案

这个转换:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="Fields">
<ABCRelease>
<ABC>
<xsl:apply-templates/>
</ABC>
</ABCRelease>
</xsl:template>

<xsl:template match="Field">
<xsl:element name="{@FieldName}">
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>

应用于提供的 XML 文档时:

<Batch BatchID="896" BatchName="20120629.130504">
<Document DocumentType="XML Question">
<Fields>
<Field FieldName="Doc_ID">1</Field>
<Field FieldName="Vendor_Code">126400</Field>
<Field FieldName="Property_Code">10519</Field>
<Field FieldName="Invoice_Num">20509</Field>
</Fields>
<Files />
</Document>
</Batch>

产生想要的、正确的结果:

<ABCRelease>
<ABC>
<Doc_ID>1</Doc_ID>
<Vendor_Code>126400</Vendor_Code>
<Property_Code>10519</Property_Code>
<Invoice_Num>20509</Invoice_Num>
</ABC>
</ABCRelease>

解释:

正确使用 <xsl:element> AVT s(属性值模板)。

关于xml - XSLT 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11256286/

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