c#从下一个节点提取值
我有下面的xml部分,正在尝试提取已知键的值。下面的示例是一个片段,来自包含1000个节点的较大xmlc#从下一个节点提取值,c#,xml,C#,Xml,我有下面的xml部分,正在尝试提取已知键的值。下面的示例是一个片段,来自包含1000个节点的较大xml <?xml version="1.0" encoding="utf-8"?> <DictionarySerializer> <item> <key>key1</key> <value>CONTENT1</value> </item> <
<?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>
我可以得到字符串CONTENT1
,但我根本不知道如何得到要表示的值节点的值。
我是阿夫拉德,这非常简单,我只是被困在一个咖啡圈里:-)
您应该使用.Value属性而不是.NextNode尝试将NextNode强制转换为XElement并从中获取值。如果您想从所有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);
});
Dictionary elements=newdictionary();
xml.Root.Elements().ToList().ForEach(xmlElement=>
{
elements.Add(xmlement.subjects(“key”).First().Value,
子体(“值”).First().value);
});
因此,元素字典将包含所有1000个节点。考虑到您可以使用XPath表达式
expression = @"//Item[Key='1']/Value"
XmlNodeList nodeList = xmlDocument.SelectNodes(expression);
这将为您提供键为1的项的值节点。只需找到所需节点的值
我相信使用XDocument您也可以尝试
string output = xDocument.XPathEvaluate(expression);
这是我在stackoverflow的第一次。绝对不是最后一次。谢谢你的回答。@KimIsaksen很好。。很高兴帮助你。。!!
expression = @"//Item[Key='1']/Value"
XmlNodeList nodeList = xmlDocument.SelectNodes(expression);
string output = xDocument.XPathEvaluate(expression);