从 XML 标记 C# LINQ 中提取键值
Posted
技术标签:
【中文标题】从 XML 标记 C# LINQ 中提取键值【英文标题】:Extracting Key value from XML tags C# LINQ 【发布时间】:2021-11-07 22:58:45 【问题描述】:void Main()
string xml = @"<root>
<Page1>
<Key_Head>Name1</Key_Head>
<Key_Title>value1</Key_Title>
</Page1>
<Page1>
<Key_Head>Name2</Key_Head>
<Key_Title>value2</Key_Title>
</Page1>
</root>";
var doc1 = XDocument.Parse(xml);
var result = ConvertXmlToDic(doc1.Root);
private static List<NameValuePair> ConvertXmlToDic(XElement element)
var result =
element
.Elements()
.Select(e => new
Name = e.Name.ToString(),
Value = (e.Descendants().Count() == 0)
? e.Value
: ConvertXmlToDic(e).ToString()
)
.ToDictionary(e => e.Name, e => e.Value)
.Select(e => new List<NameValuePair>()
new NameValuePair() Name = e.Key, Value = e.Value
);
return (List<NameValuePair>)result;
如何获取
【问题讨论】:
【参考方案1】:您可以简化检索Key_Head
和Key_Title
的逻辑,如下所示:
private static List<NameValuePair> ConvertXmlToDic(XElement element)
var result = element.Elements()
.Select(e => new NameValuePair
Name = e.Element("Key_Head").Value,
Value = e.Element("Key_Title").Value
)
.ToList();
return result;
输出
名称:名称1,值:值1
名称:name2,值:value2
Sample program
【讨论】:
以上是关于从 XML 标记 C# LINQ 中提取键值的主要内容,如果未能解决你的问题,请参考以下文章