1

我需要阅读这样的 xml 文档:

<wcs:CoverageOffering>
<wcs:description>Generated from GeoTIFF</wcs:description>
<wcs:name>ndh:ndh-cyclone-mortality-risks-distribution</wcs:name>
                            ....

但在某些服务器中,xml 文档是在没有命名空间标签的情况下实现的:

<CoverageOffering>
<description>Generated from GeoTIFF</description>
<name>ndh:ndh-cyclone-mortality-risks-distribution</name>
                         ....

如何以有效的方式阅读两者?(我为每个节点编写了 if else 语句来控制这个条件,但这似乎不是一个好方法)

4

2 回答 2

1

使用命名空间XmlDocument并将其添加wcsXmlNamespaceManager

var document = new XmlDocument();
document.Load(...);
var nsmgr = new XmlNamespaceManager(document.NameTable);
nsmgr.AddNamespace("wcs", "http://...your ns");

var nl = document.SelectNodes("your xpath", nsmgr);
于 2013-05-27T07:53:24.403 回答
0

您可以使用这个 XML 库。如果需要,它将使用命名空间。

你可以像这样使用它:

XElement root = XElement.Load(file);
string description = root.Get("path/to/description", default(string));

或者

string description = root.XGetElement("//description", default(string));

default(string)用于 Get 的类型转换。你可以传递任何你想要的默认值。

于 2013-05-27T07:46:03.240 回答