我需要读取这样的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语句来控制这个条件,但这似乎不是一个好方法)
答案 0 :(得分:1)
使用XmlDocument
并将wcs
命名空间添加到XmlNamespaceManager
:
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);
答案 1 :(得分:0)
您可以使用this XML Library。如果需要,它将使用命名空间。
您可以像以下一样使用它:
XElement root = XElement.Load(file);
string description = root.Get("path/to/description", default(string));
或
string description = root.XGetElement("//description", default(string));
default(string)
用于Get的类型转换。您可以传递任何您想要的默认值。