2015-02-01 1 views
0

У меня есть этот 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; 
}  

Но я ничего не получаю.

спасибо.

ответ

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 пространство имен для этого.

+0

спасибо Ehsan Саджада, я попробую его – user3685452

+1

вам может понадобиться, чтобы положить @ перед именем файла – kevin

+0

Да @Kevin нам нужно, что если мы будем использовать один обратный слэш, мы используем два здесь, так что нет необходимости @ –

Смежные вопросы