gpt4 book ai didi

c# - 如何在生成时删除 XML 中的类型?

转载 作者:太空宇宙 更新时间:2023-11-03 13:13:50 24 4
gpt4 key购买 nike

我在文本文件中有 1000 条记录。我的要求是将数据插入到 SQL Server 中。为此,如果我可以转换为 XML 或推送到脚本组件也很好。

源文本文件包含这种格式...

[{"ID":1,"Name":"test1","State":"AP"},{"ID":2,"Name":"test2","State":"KN"},{"ID":3,"Name":"test3","State":null}]

String json = System.IO.File.ReadAllText(@"C:\t1.txt");
byte[] bytes = Encoding.ASCII.GetBytes();
using (var stream = new MemoryStream(bytes))
{
var quotas = new XmlDictionaryReaderQuotas();
var jasonreader - JsonReaderWriterFactory.CreateJasonReader(stream,quotas);
var xml = XDocument.Load(jsonreader);
xmlDocument xd = new XmlDocument();

using (steamwriter fs = new streamwriter(@"C:\t.xml");
{
fs.write(xml);
}
console.writeLine(xml);
}

输出-

<root type="array"
<item type="object">
<ID type="number">1</ID>
<Name type="string">test1</Name>
<State type="string">AP</State>
</item>
<item type="object">
<root type="array"
<item type="object">
<ID type="number">2</ID>
<Name type="string">test2</Name>
<State type="string">KN</State>
</item>
<item type="object">
<root type="array"
<item type="object">
<ID type="number">3</ID>
<Name type="string">test3</Name>
<State type="string"></State>
</item>
</root>

当我使用 SSIS XML Source 任务时,正在获取列...

外部列:

type
text
item_id

输出列:

type
text
item_id

理想情况下,我应该获得 ID、Name 和 State 列。问题是什么?我怎样才能摆脱 XML 中的类型?

最佳答案

使用 Linq 怎么样? (使用 Json.Net )

var jArr = JArray.Parse(File.ReadAllText(filename));
XElement root = new XElement("root");

foreach(JObject jObj in jArr )
{
root.Add(new XElement("item", jObj.Properties()
.Select(p => new XElement(p.Name,
p.Value.ToString()))
.ToArray()));
}

var xml = root.ToString();

或者使用更多的 linq

var jArr = JArray.Parse(File.ReadAllText(filename));
XElement root = new XElement("root");
root.Add( jArr.Cast<JObject>()
.Select(jObj => new XElement("item", jObj.Properties()
.Select(p => new XElement(p.Name,
p.Value.ToString()))
.ToArray())));

var xml = root.ToString();

关于c# - 如何在生成时删除 XML 中的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27364835/

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