【发布时间】:2017-08-24 17:07:58
【问题描述】:
我的 Xml 看起来像...
<root>
<extension>
<Obj>
<Id>12345</Id>
<NameValuePair>
<Name>Prop1</Name>
<Value>Value1</Value>
</NameValuePair>
<NameValuePair>
<Name>Prop2</Name>
<Value>Value2</Value>
</NameValuePair>
<NameValuePair>
<Name>Prop3</Name>
<Value>Value3</Value>
</NameValuePair>
</Obj>
<Obj>
<Id>67890</Id>
<NameValuePair>
<Name>Prop4</Name>
<Value>Value5</Value>
</NameValuePair>
<NameValuePair>
<Name>Prop5</Name>
<Value>Value5</Value>
</NameValuePair>
<NameValuePair>
<Name>Prop6</Name>
<Value>Value6</Value>
</NameValuePair>
</Obj>
</extension>
</root>
我正在尝试使用XDocument/Linq to XML来实现..
Id: 12345
Prop1: Value1
Prop2: Value2
Prop3: Value3
Id: 67890
Prop1: Value1
Prop2: Value2
Prop3: Value3
我已经知道需要查找的 ID,在此处的代码中,我按照示例将其硬编码为“12345”...这是我目前所拥有的...
var val = xmlDoc.Element("extension").Elements("Obj")
.Where(i => (string)i.Element("Id") == "12345" &&
(string)i.Element("NameValuePair").Element("Name") == "Prop2")
.Select(i => (string)i.Element("NameValuePair").Element("Value")).FirstOrDefault();
似乎正在发生的事情是,每次我“尝试”获取一个值......它只是返回 NULL..
最终,我试图将它放入一个对象中,例如...
internal class MyClass
{
public string Id { get; internal set; }
public string Prop1 { get; internal set; }
public string Prop2 { get; internal set; }
public string Prop3 { get; internal set; }
}
有什么建议吗?
【问题讨论】:
标签: c# linq-to-xml