我有以下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/

10-17 00:16