如何在 XML 的根目录中获取命名空间

本文关键字:获取 命名空间 根目录 XML | 更新日期: 2023-09-27 17:56:11

我有一个 xml,其根具有类似命名空间

 <root version="2.0" xsi:schemaLocation="http://www.sample.org/schemas/2009 http://www.sample1.org/schemas/2009/railML-2.0/railML.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://xyz/elements/1.1/" xmlns="http://www.abcd.org/schemas/2009">

我能够使用

var xdoc = XDocument.Load(XmlToParse);
 Console.WriteLine(xdoc.Root.Name.NamespaceName);

但是我怎样才能在根中获取其他命名空间的值,即

xsi
dc
schemaLocation

在解析之前,我需要验证这些命名空间,所以我需要这些值。怎么办?LINQ 如何完成吗?

如何在 XML 的根目录中获取命名空间

var q = xdoc.Root.Attributes()
                 .Where(x => x.IsNamespaceDeclaration)
                 .Select(x => new {Prefixes = x.Name.LocalName, ns = x.Value});

编辑:

更多方法:使用 XPathDocument 和 LINQ to XML 从 XML 文档获取命名空间