我的XML文件是
<?xml version="1.0" encoding="utf-8"?>
<root>
<Message type="sms">
<Details locale="en" message-type="User.ResetPassword" />
<Context>
<Parameter name="Time" value=" 16:03:31" />
<Parameter name="pswr" value="00" />
<Parameter name="Date" value="18/12/2014" />
</Context>
<Receiver>+923328749199</Receiver>
</Message>
</root>
我的C#代码是
XElement xelement = XElement.Load("C:\\Users\\qadeer.hussain\\Desktop\\gw-msg-2.xml");
var name = from nm in xelement.Elements("Message").Elements("Context").Elements("Parameter")
where nm.Element("Receiver").Value == "+923328749199"
select nm;
问题是我的where子句不起作用,除了where子句查询工作正常。你能帮我解决一下这个问题。
答案 0 :(得分:1)
XElement xelement = XElement.Load("C:\\Users\\qadeer.hussain\\Desktop\\gw-msg-2.xml");
var name = from nm in xelement.Elements("Message")
from mm in nm.Elements("Context").Elements("Parameter")
where nm.Element("Receiver").Value == "+923328749199"
select mm;
答案 1 :(得分:0)
<Receiver>
不是<Parameter>
的孩子,而是<Message>
的孩子。试试这个:
XElement xelement = XElement.Parse(xml);
var name = from message in xelement.Elements("Message")
from param in message.Elements("Context").Elements("Parameter")
where (string)message.Element("Receiver") == "+923328749199"
select param;