您好我想要在xml文件中搜索节点并识别文件类型。
XDocument xDococumnetObj = XDocument.Load(filePath);
XElement presentationElement=
xDococumnetObj.Descendants()
.Where(x => x.Name.LocalName.Equals("collegge"))
.FirstOrDefault();
我写了查询,它返回了我的同事节点。但我只是想确定它的文档类型。我想在单个查询中识别文档是否包含{"Collegge","University","Company","Banking"}
并仅返回其类型。
答案 0 :(得分:1)
string[] docTypes = {"Collegge", "University", "Company", "Banking"};
XDocument xdoc = XDocument.Load(filePath);
var docType = docTypes.FirstOrDefault(type =>
xdoc.Descendants().Any(n => n.Name.LocalName == type.ToLower()));
UPDATE:如果在同一名称空间中声明了所有元素,则可以使用以下代码来避免遍历文件中的所有元素
string[] docTypes = {"Collegge", "University", "Company", "Banking"};
XDocument xdoc = XDocument.Load(filePath);
XNamespace ns = "http://www.foo.org/2013/bar";
var docType = docTypes.FirstOrDefault(type => xdoc.Descendants(ns + type).Any());