我有一个 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 如何完成吗?
var q = xdoc.Root.Attributes()
.Where(x => x.IsNamespaceDeclaration)
.Select(x => new {Prefixes = x.Name.LocalName, ns = x.Value});
编辑:
更多方法:使用 XPathDocument 和 LINQ to XML 从 XML 文档获取命名空间