似乎无法找到如何使用XElement正确解析它:
<messages>
<message subclass="a" context="d" key="g">
<message subclass="b" context="e" key="h">
<message subclass="c" context="f" key="i">
</messages>
Run Code Online (Sandbox Code Playgroud)
我想把它带到一个List,其中有三个字符串子类,context,key.
Ant*_*ram 23
您的输入不是有效的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();
Run Code Online (Sandbox Code Playgroud)
您还可以使用XDocument完整的XML文档,并使用该Load方法,而不是Parse使用XML文件或流.此外,如果您已定义一个,则可以选择具体类.给出了类的定义
class Message
{
public string Subclass { get; set; }
public string Context { get; set; }
public string Key { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
您可以select new Message在查询中使用,结果将是a List<Message>,而现在它是匿名类型的列表.