<Customers>
<User name="aaa" age="21">
<Address>
Shanghai
</Address>
<Technology>
C#
</Technology>
</User>
<User name="bbb" age="22">
<Address>
Zhejiang
</Address>
<Technology>
javascript
</Technology>
</User>
<User name="ccc" age="23">
<Address>
Zhejiang
</Address>
<Technology>
Delphi
</Technology>
</User>
</Customers>请问,我如果要获取 name="bbb" 的节点下面的 Address节点的值zhejiang,C#应该怎么写呢?
<User name="aaa" age="21">
<Address>
Shanghai
</Address>
<Technology>
C#
</Technology>
</User>
<User name="bbb" age="22">
<Address>
Zhejiang
</Address>
<Technology>
javascript
</Technology>
</User>
<User name="ccc" age="23">
<Address>
Zhejiang
</Address>
<Technology>
Delphi
</Technology>
</User>
</Customers>请问,我如果要获取 name="bbb" 的节点下面的 Address节点的值zhejiang,C#应该怎么写呢?
if (xn != null)
return xn.Attributes["Source"].Value;
XmlDocument xd = new XmlDocument();
xd.LoadXml(xmlStr);
XmlNodeList xnlUser = xd.SelectNodes("Customers/User");
string bAddress = "";
foreach(XmlNode xnUser in xnlUser)
{
if(xnUser.Attributes["name"].Value == "bbb")
{
bAddress = xnUser.SelectSingleNode("Address").InnerText;
break;
}
}
void Main()
{
string xml = @"<Customers>
<User name=""aaa"" age=""21"">
<Address>
Shanghai
</Address>
<Technology>
C#
</Technology>
</User>
<User name=""bbb"" age=""22"">
<Address>
Zhejiang
</Address>
<Technology>
javascript
</Technology>
</User>
<User name=""ccc"" age=""23"">
<Address>
Zhejiang
</Address>
<Technology>
Delphi
</Technology>
</User>
</Customers>";
XElement xmlPage = XElement.Parse(xml);
var q = from x in xmlPage.Descendants("User")
where x.Attribute("name").Value == "bbb"
select x.Element("Address").Value;
q.ToList().ForEach(l=>Console.WriteLine(l));
}/*
Zhejiang
*/
<User name=""aaa"" age=""21"">
<Address>
Shanghai
</Address>
<Technology>
C#
</Technology>
</User>
<User name=""bbb"" age=""22"">
<Address>
Zhejiang
</Address>
<Technology>
javascript
</Technology>
</User>
<User name=""ccc"" age=""23"">
<Address>
Zhejiang
</Address>
<Technology>
Delphi
</Technology>
</User>
</Customers>";
XDocument Doc = XDocument.Parse(xml);
var query = Doc.Descendants("User").Where(x => x.Attribute("name").Value == "bbb").Select(x => x.Element("Address").Value);
foreach (var v in query)
{
Console.WriteLine(v.ToString());
此消息通过 【CSDN论坛 Winform测试版】 回复!龙月.NET的博客