我有以下xml部分,正在尝试提取已知键的值。下面的示例是一个片段,来自包含1000个节点的较大xml。
<?xml version="1.0" encoding="utf-8"?>
<DictionarySerializer>
<item>
<key>key1</key>
<value>CONTENT1</value>
</item>
<item>
<key>key2</key>
<value>CONTENT2</value>
</item>
</DictionarySerializer>
我假设上面是一个名为xml的字符串,
然后用
XDocument.Parse(xml)
.Descendants("key")
.Where(x => (string)x.Value == "key1")
.FirstOrDefault().NextNode.ToString()
我可以得到字符串
<value>CONTENT1</value>
,但是我根本无法理解如何获取值节点的值。我很害怕,这非常简单,我只是陷入了咖啡因循环:-)
最佳答案
如果要从所有1000个元素中获取XML的所有键和值。您可以使用:
Dictionary<string, string> elements = new Dictionary<string, string>();
xml.Root.Elements().ToList().ForEach(xmlElement =>
{
elements.Add(xmlElement.Descendants("key").First().Value,
xmlElement.Descendants("value").First().Value);
});
因此,elements字典将包含您的所有1000个节点。
关于c# - C#从nextnode提取值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32378700/