1

您好我有一个场景,我想在 xml 文件中搜索节点并识别文件类型。

XDocument xDococumnetObj = XDocument.Load(filePath);
XElement presentationElement= 
      xDococumnetObj.Descendants()
                    .Where(x => x.Name.LocalName.Equals("collegge"))
                    .FirstOrDefault();

我已经编写了返回我大学节点的查询。但我只想确定它的文件类型。我想识别文档是否包含{"Collegge","University","Company","Banking"}在单个查询中并仅返回其类型。

4

1 回答 1

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()));

更新:如果在同一个命名空间中声明所有元素,您可以使用以下代码来避免遍历文件中的所有元素

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());
于 2013-03-19T06:15:35.207 回答