首页 > 解决方案 > 如何使用 XDocument C# 获取 xsi:noNamespaceSchemaLocation 属性的值

问题描述

我有很多具有各种 xsi:noNamespaceSchemaLocation 值的 XML 文件。这些在文档根节点的属性中。我需要从文件中读取 xsi:noNamespaceSchemaLocation 值。这应该不难,但我正在努力。

示例 XML(这是根节点):

<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:dc="http://www.purl.org/dc/elements/1.1/" 
xmlns:xlink="http://www.w3.org/1999/xlink" 
xsi:noNamespaceSchemaLocation="http://www.someSchemaLocation.xsd">

这是我正在寻找的xsi:noNamespaceSchemaLocation的值。

我可以 :

string blah = myXdocument.Root.GetNamespaceOfPrefix("xsi").NamespaceName;

"http://www.w3.org/2001/XMLSchema-instance"这会如您所愿返回。

我试过了:

string test = myXdocument.Root.Attribute("xsi" + "noNamespaceSchemaLocation").Value.ToString(); 

但这返回null。

请问有什么想法吗?

标签: c#xmllinq-to-xmlxml-namespaces

解决方案


投射blahXNamespace

string test = myXdocument.Root.Attribute((XNamespace)blah + "noNamespaceSchemaLocation")
    .Value.ToString();

推荐阅读