从节点获取属性值并使用LINQ to XML检查空节点

时间:2014-01-28 20:30:52

标签: xml linq-to-xml

使用LINQ to XML,我试图从“media”节点获取属性值:“name1和name2”:

<server>
 <networkAdapters>
 </networkAdapters>    
 <media name1="test1" name2="test2">
   <groups>
      <group name="Group Name">
   </groups>
   <others>
   </others>
 </media>
</server>

The code should also check for null or non existent nodes at all, for instance:

<server>
 <networkAdapters>
 </networkAdapters>    
 <media>
   <groups>
   </groups>
   <others>
   </others>
 </media>
</server>

or

<server>
 <networkAdapters>
 </networkAdapters>
</server>

我是LINQ to XML的新手,我正在尝试以下方法:

string attribute1 = doc.Descendants("media").Select(s => s.Attribute("name1")).ToString();
string attribute2 = doc.Descendants("media").Select(s => s.Attribute("name2")).ToString();

我知道这是完全错误的,但这是一个开始。欢迎任何帮助。 谢谢!

1 个答案:

答案 0 :(得分:0)

var name1 = (string)(xDoc.Root.Element("media") ?? New XElement("media")).Attribute("name1");