我有以下 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") ?? "";
};