gpt4 book ai didi

c# - 使用 XElement 进行 XML 解析

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

似乎无法找到如何使用 XElement 适本地解析它:

<messages>
<message subclass="a" context="d" key="g">
<message subclass="b" context="e" key="h">
<message subclass="c" context="f" key="i">
</messages>

我想把它放到一个列表中,其中包含三个字符串子类、上下文和键。

最佳答案

您的输入不是有效的 XML,它在内部消息元素上缺少结束标记。但假设格式有效,您可以解析出您的结构,如下所示:

string xml = @"<messages> 
<message subclass=""a"" context=""d"" key=""g""/>
<message subclass=""b"" context=""e"" key=""h""/>
<message subclass=""c"" context=""f"" key=""i""/>
</messages>";

var messagesElement = XElement.Parse(xml);
var messagesList = (from message in messagesElement.Elements("message")
select new
{
Subclass = message.Attribute("subclass").Value,
Context = message.Attribute("context").Value,
Key = message.Attribute("key").Value
}).ToList();

您还可以使用 XDocument完整的 XML 文档,并使用 Load方法而不是 Parse例如,如果您使用的是 XML 文件或流。此外,如果您定义了具体类,则可以选择具体类。给定

的类定义
class Message 
{
public string Subclass { get; set; }
public string Context { get; set; }
public string Key { get; set; }
}

你可以使用 select new Message在查询中,结果将是 List<Message> , 而现在它是一个匿名类型的列表。

关于c# - 使用 XElement 进行 XML 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9090033/

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