我通过Xdocument加载xml:
XDocument document = new XDocument();
document = XDocument.Load(filepath);
var list = document.Element("Items").Elements("Item").Select(Items.FromXElement).ToList();
如果Xml文件不包含元素“Item”或“Items”,则会出现NullReference异常。 在此异常之前,如何检查我的xml文件中的元素内容?
答案 0 :(得分:1)
有几种方法可以做到这一点:
选项1:XPath
using System.Xml.XPath;
var list = document.XPathSelectElements("/Items/Item").Select(Items.FromXElement).ToList();
选项2:帮助方法
static class XExtensions
{
public static XElement ElementOrEmpty(this XContainer container, XName name)
{
return container.Element(name) ?? new XElement(name);
}
}
var list = document.ElementOrEmpty("Items").Elements("Item").Select(Items.FromXElement).ToList();
答案 1 :(得分:1)
尝试使用XPath。通过LinqPad运行:
XDocument doc = XDocument.Parse("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<Items>" +
"<Item>" +
"</Item>" +
"</Items>");
var items = doc.Root.XPathSelectElements(@"//Items/Item");
items.Dump();
如果不存在Items
,将返回空的IEnumerable。