2012-03-07 49 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();