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