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 に答える