我想在表单上显示第一个节点XML属性?

时间:2015-02-01 14:51:30

标签: c# xml linq linq-to-xml

我有这个XML文件:

<tree>
<grand name ="tom"  id="1" sex="m" status="d" child="2" father=""  /> 
<grand name="adam"  id="11" sex="m" status="d" child="1" father="1"   /> 
<grand name="john"  id="111" sex="m" status="d" child="1"  father="11"   />  
<grand name="pierre"  id="1111" sex="m" status="d" child="3"  father="111"   />  
<grand name="jan"   id="11111" sex="f" status="d" child=""  father="1111"  />  
<grand name="marc"    id="11112" sex="m" status="d" child=""  father="1111"  />  
</tree>

我尝试此代码仅在加载表单时显示第一个节点的属性:

private void Form1_Load(object sender, EventArgs e)
{
    XmlDocument XDoc = new XmlDocument();
    XDoc.Load("F:\\tree.xml");
    XmlNode att = XDoc.SelectSingleNode("//grand/@name");
    string nam = att.ToString();
    label1.Text = att;
}      

但我一无所获。

非常感谢。

1 个答案:

答案 0 :(得分:3)

您可以使用linq和XDocument

来完成
XDocument doc = XDocument.Load("F:\\tree.xml");  
var result= xdoc.Descendants("grand").First().Attribute("name").Value;
label1.Text = result;

或过滤id属性this way

您必须为其添加System.Xml.Linq命名空间。