首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >读取带&不带命名空间标记的节点

读取带&不带命名空间标记的节点
EN

Stack Overflow用户
提问于 2013-05-27 15:23:14
回答 2查看 112关注 0票数 1

我需要像这样读取xml文档:

代码语言:javascript
复制
<wcs:CoverageOffering>
<wcs:description>Generated from GeoTIFF</wcs:description>
<wcs:name>ndh:ndh-cyclone-mortality-risks-distribution</wcs:name>
                            ....

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

代码语言:javascript
复制
<CoverageOffering>
<description>Generated from GeoTIFF</description>
<name>ndh:ndh-cyclone-mortality-risks-distribution</name>
                         ....

我怎样才能高效地阅读这两篇文章呢?(我为每个节点编写了if else语句来控制这种情况,但这似乎不是一个好方法)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-27 15:53:24

使用XmlDocument并将wcs命名空间添加到XmlNamespaceManager

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2013-05-27 15:46:03

您可以使用this XML Library。如果需要,它将使用命名空间。

您可以像这样使用它:

代码语言:javascript
复制
XElement root = XElement.Load(file);
string description = root.Get("path/to/description", default(string));

代码语言:javascript
复制
string description = root.XGetElement("//description", default(string));

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16768228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档