2012-03-07 10 views

答えて

1

あなたはすべての要素を列挙し、その名前空間を抽出する必要がありますので、あなたに直接使用されているすべての名前空間を与えるものは、ありません:

var namespaces = root.DescendantsAndSelf() 
        .Select(e => e.Name.Namespace) 
        .Distinct(); 

これはあなたの要素で使用された唯一の名前空間を与えるだろうドキュメント。ドキュメント内で宣言されているすべての名前空間をリストする場合は、それらが使用されていない場合でも属性によってのみ使用されている場合でも、名前空間宣言を繰り返す必要があります:

var namespaces = root.DescendantsAndSelf() 
        .Attributes() 
        .Where(a => a.IsNamespaceDeclaration) 
        .Select(a => (XNamespace)a.Value) 
        .Distinct(); 
関連する問題