gpt4 book ai didi

xml - 如何编写 XSLT 将 XML 转换为 CSV?

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

我正在尝试编写一个 XSLT,它将我拥有的 XML 文档转换为 CSV 文件。以下是 XML 示例:

<?xml version="1.0" encoding="utf-8"?>
<Import>
<Users>
<User ID="user_1" EmailAddress="johndoe@somewhere.com">
<Contact FirstName="John" LastName="Doe" />
<Address Street1="808 Elm St" City="Anywhere" State="NY" />
</User>

<User ID="user_2" EmailAddress="janenoone@somewhere.com">
<Contact FirstName="Jane" LastName="Noone" />
<Address Street1="123 Some Rd" City="Anywhere" State="NY" />
</User>
</Users>
</Import>

我想要的是一个像这样输出的 XSLT:

John,Doe,808 Elm St,Anywhere,NY
Jane,Noone,123 Some Rd,Anywhere,NY

我想我有正确的 C# 代码来启动转换,但以防万一我没有,这里也有该代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Xsl;
using System.Configuration;

namespace UserTransform
{
class Program
{
static void Main(string[] args)
{
string oldXML = ConfigurationSettings.AppSettings["XMLToBeTransformed"];
string xsltLocation = ConfigurationSettings.AppSettings["XSLTfile"];
string newCSV = ConfigurationSettings.AppSettings["NewCSVLocation"];

XslCompiledTransform transform = new XslCompiledTransform();
transform.Load(xsltLocation);
transform.Transform(oldXML, newCSV);
}
}
}

最佳答案

创建一个匹配所有用户的模板,然后按照你想要的顺序拉出你需要的信息:

<xsl:template match="//User">
<xsl:value-of select="Contact/@FirstName"/>,
<xsl:value-of select="Contact/@LastName"/>,
<!--etc-->
</xsl:template>

显然,您需要确保按照您希望的方式处理空格,并在正确的位置使用换行符。我将把它作为练习留给读者。

关于xml - 如何编写 XSLT 将 XML 转换为 CSV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/952365/

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