• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
擦肩没过
博客园    首页    新随笔    联系   管理    订阅  订阅
读取带有命名空间的xml的节点内容

Q:

Taking this simplifed example of my XML:

复制代码
1 <?xml version="1.0"?> 
2 <message xmlns="http://www.mydomain.com/MyDataFeed" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mydomain.com/MyDataFeed https://secure.mydomain/MyDataFeed/myDataFeed.xsd" requestId="13898" status="1">
3  <error>Invalid Login</error> 
4 </message>
复制代码

I am trying to select the 'error' node using SelectSingleNode method, however using the following code it always returns NULL?

1 XmlNode errorNode = oss.SelectSingleNode("/message/error"); 
2 if (errorNode != null)      
3     Console.Writeline("There is an error"); 

From research I have done this is related to namespaces but I simply can't get anything to work. Any advice?

 

A:

You're missing the XML namespace defined by the <message> node in your SelectSingleNode call. Assuming oss is an XmlDocument instance, you need to do this:

1 XmlNamespaceManager nsMgr = new XmlNamespaceManager(oss.NameTable); 
2 nsMgr.AddNamespace("ns", "http://www.mydomain.com/MyDataFeed");  
3 XmlNode errorNode = oss.SelectSingleNode("/ns:message/ns:error", nsMgr); 

 

转载自:http://stackoverflow.com/questions/1766254/selectsinglenode-always-returns-null

posted on 2013-04-26 13:55  擦肩没过  阅读(279)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3