gpt4 book ai didi

c# - Linq to XML查询问题

转载 作者:太空宇宙 更新时间:2023-11-03 20:37:41 25 4
gpt4 key购买 nike

我有一个 List<Item>我尝试使用 Linq to XML 生成 xml 文件的集合。

List类如下:

public class Item
{
public int Id { get; set; }
public string ItemName {get; set;}
}

我需要获取如下所示的 XML:

<Items>
<Item>
<ID>1</ID>
<Item_Name>Super Sale Item Name</Item_Name>
</Item>
</Items>

这是我试过但没有成功的查询

XDocument xdoc = new XDocument(new XElement("Items"),
_myItemCollection.Select(x => new XElement("Item",
new XElement("ID", x.Id),
new XElement("Item_Name", x.ItemName))));

我不断收到一条错误消息,说它会创建无效的 XML。有什么想法吗?

错误是

此操作会创建结构不正确的文档。

在 System.Xml.Linq.XDocument.ValidateDocument(XNode 上一个,XmlNodeType allowBefore,XmlNodeType allowAfter) 在 System.Xml.Linq.XDocument.ValidateNode(XNode 节点,XNode 前一个) 在 System.Xml.Linq.XContainer.AddNodeSkipNotify(XNode n) 在 System.Xml.Linq.XContainer.AddContentSkipNotify(对象内容) 在 System.Xml.Linq.XContainer.AddContentSkipNotify(对象内容) 在 System.Xml.Linq.XContainer.AddContentSkipNotify(对象内容) 在 System.Xml.Linq.XDocument..ctor(对象 [] 内容)

最佳答案

试试这个:

using System;
using System.Linq;
using System.Xml.Linq;

public class Item
{
public int Id { get; set; }
public string ItemName { get; set; }
}

class Program
{
static void Main()
{
var collection = new[]
{
new Item {Id = 1, ItemName = "Super Sale Item Name"}
};

var xdoc = new XDocument(new XElement("Items",
collection.Select(x => new XElement("Item",
new XElement("ID", x.Id),
new XElement("Item_Name", x.ItemName)))));

Console.WriteLine(xdoc);
}
}

您缺少的主要内容是您的 XElement 集合项目需要嵌套在第一个 XElement(“Items”)中,而不是它的同级。请注意,new XElement("Items")... 已更改为 new XElement("Items", ...

关于c# - Linq to XML查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4384282/

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