我有以下 xml

<students> 
  <student> 
    <id>12</id> 
    <name>Mohsan</name> 
  </student> 
  <student> 
    <id>2</id>     
  </student> 
  <student> 
    <id>3</id> 
    <name>Azhar</name> 
  </student> 
</students> 

请注意,在 2 中缺少名称元素。

我必须使用 Linq to XML 读取此 xml

我使用下面的代码让所有学生..

请建议我改进这段代码

var stds = from std in doc.Descendants("student") 
                select new 
                { 
                    ID = std.Element("id").Value, 
                    Name = (std.Element("name")!=null)?std.Element("name").Value:string.Empty 
                }; 

请您参考如下方法:

您可以利用一个事实,即有一个 explicit conversion from XElement to string ,它为 null XElement 引用返回 null。然后,您可以使用 null 合并运算符从 null 变为空字符串:

var stds = from std in doc.Descendants("student") 
           select new 
           { 
               ID = std.Element("id").Value, 
               Name = (string) std.Element("name") ?? ""; 
           }; 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!