我试图使用XDocument从这个xml文档中的元数据中获取名称空间:
<?xml version="1.0" encoding="utf=8"?>
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>NugetName</id>
<version>1.0.0</version>
<authors>company</authors>
<owners>company</owners>
</metadata>
<files>
...
</files>
</package>我尝试使用来自XElement的XElement()方法如下:
XNamespace ns = xmlDoc.Root.GetDefaultNamespace();但是,我得到了一个空值。我读到了一些注释,其中指出,由于根名称空间具有多个名称空间,因此可能无法使用此方法获取元数据的命名空间。
我想尝试从Root.Element(“元数据”)中获取属性,但因为我没有不能工作的名称空间,所以我认为。
有什么想法吗?
PS我不一定知道名称空间的原因是因为我正在使用受信任的nuspec文件,并且我担心模式可能会改变。
发布于 2017-05-16 20:51:04
xmlDoc.Root是<package>元素。
它没有默认的命名空间。
你想要xmlDoc.Root.Elements().First().GetDefaultNamespace()。
https://stackoverflow.com/questions/44011235
复制相似问题