一般的xml文件相信大家都会解析了,但是遇到有命名空间的带前缀的xml,对于新手可能会有点问题。我这里在论坛解答的时候就遇到过一题,见怎么获取XML节点里面的内容,在线求教。这里给大家演示一下。

他的结构是这样子的:

<?xml version="1.0" encoding="utf-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.jiangsuedu.net/justone/">
<SOAP-ENV:Header>
<TransactionID>110000000001</TransactionID>
<ServiceType>/sms/mt</ServiceType>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GateWayID>YNMC</GateWayID>
<DstID>15125664368</DstID>
<SrcID>099879</SrcID>
<FeeID>15125664368</FeeID>
<LinkID/>
<MsgContent>哈哈</MsgContent>
<ServiceID>AYN3913101</ServiceID>
<MsgID>1234</MsgID>
<CommitTime>201311130101022</CommitTime>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

比如我们要取MsgContent节点下的内容,我们直接去取是会报错的。比如:

XmlDocument doc = new XmlDocument();
doc.Load("test.xml");
string value = doc.SelectSingleNode("/SOAP-ENV:Envelope/SOAP-ENV:Body/MsgContent").InnerText;

这里value会发生异常,如图:

根据错误提示,已经提醒我们需要命名空间管理器。

XmlDocument doc = new XmlDocument();
doc.Load("test.xml"); XmlElement root = doc.DocumentElement;
string nameSpace = root.NamespaceURI;
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); ;
nsmgr.AddNamespace("SOAP-ENV", nameSpace); string value = doc.SelectSingleNode("/SOAP-ENV:Envelope/SOAP-ENV:Body/MsgContent", nsmgr).InnerText;
Console.WriteLine(value);//输出:哈哈

这时我们加上了XmlNamespaceManage进行处理,成功的获取到了我们想要的内容。

C# 解析带前缀的Xml节点内容的更多相关文章

  1. dom4j解析带命名空间的xml文件

    文件内容如下 <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd=& ...

  2. flash读取XML节点内容以及节点属性

    原文地址:http://hi.baidu.com/yqzdm/item/f95fd9d24679d916d90e44c9 一.xml的写法: 这里的xml只是在有限范围内的了解,限于写一些简单的用于f ...

  3. 【转】PHP解析带CDATA的XML方法

    XML文件,如下 <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName& ...

  4. WebLoad 解析服务器返回的XML格式内容

    Parsing the XML Response get the root node:  var rootNode = document.wlXmls[0].XMLDocument.documentE ...

  5. Linux Shell | 解析xml节点

    01 xml文件 # user.xml <user> <name>Toy</name> <sex>man</sex> <room/&g ...

  6. 使用boost::property_tree生成带attribute的xml

    曾经写过一篇"使用Boost property tree来解析带attribute的xml", 但是还有姐妹篇一直没贴.看看前一篇贴了都快都快3年了,时间过的真快. 这一小篇就算是 ...

  7. Linq解析带命名空间、前缀、Soap格式的XML

    关于XML,经常会用到,XML有一般的,同样也有二般的,更不要觉得会操作基础的XML就觉得自己已经精通XML操作,文中是对解析XML的方法进行介绍 1. 一般XML <?xml version= ...

  8. 解析xml节点属性及子节点内容

    xml样例 <microNearlyThreeYearsOverdueInfo subReportType="13204" subReportTypeCost="9 ...

  9. Java 用自带dom解析器遍历叶子节点内容

    一.XML文件config.xml,内容如下: <?xml version="1.0" encoding="UTF-8" standalone=" ...

随机推荐

  1. ArcGIS教程:加权叠加

    摘要 使用经常使用測量比例叠加多个栅格数据,并依据各栅格数据的重要性分配权重. 插图 插图中,两个输入栅格已又一次分类为 1 至 3 三种公共測量级别.为每一个栅格均分配了一个影响百分比.这些像元值与 ...

  2. 并行编程之多线程共享非volatile变量,会不会可能导致线程while死循环

    背景 大家都知道线程之间共享变量要用volatilekeyword.可是,假设不用volatile来标识,会不会导致线程死循环?比方以下的伪代码: static int flag = -1; void ...

  3. ios开发——实战OC篇&SQLite3的实际应用

    SQLite3的实际应用 前面的文章中介绍了SQlite,并且介绍了他的各种语法及使用方法. 但是没有正在项目中使用特,今天就开始做一个小小的实例,就是使用SQLite3来实现数据库的相应操作并且把他 ...

  4. RHEL6中ulimit的nproc限制

    http://blog.csdn.net/kumu_linux/article/details/8301760 当前shell下更改用户可打开进程数 修改limits.conf配置文件生效 [root ...

  5. jQuery执行请求demo

    Ajax教程地址 4.3.2 执行GET请求 使用jQuery来执行GET请求有多种可选的方法.最简单的方法是使用$.get(),其参数是一个URL和一个回调函数:该回调函数有两个参数:一个是从服务器 ...

  6. 使用GDB调试Android NDK native(C/C++)程序

    使用GDB调试Android NDK native(C/C++)程序 先说明下,这里所谓的ndk native程序跟Android上层java应用没有什么关系,也不需要涉及jni来封装native接口 ...

  7. 问题:loadrunner录制event为0

     loadrunner录制问题问题1:录制时出现event为0的状况 解决办法: 1.如果是IE浏览器,把启用第三方浏览器扩展*钩给去掉    2使用火狐浏览器,这个就比较好,在lr启动的时候就去勾选 ...

  8. Unity3d 播放高质量视频解决方案

    Unity3d 播放高质量视频解决方案~ 最近在折腾一个视频游戏.真的是一个视频游戏,游戏主背景是个大视频.可能切换三四个视频,而且需要无缝切换. 平台是安卓,蕊片是rockclip.找了各式各样的插 ...

  9. android webview乱码问题

    使用 loadData方法是中文部分会出现乱码,即使指定“utf-8”.“gbk”.“gb2312”也一样. webView.getSettings().setDefaultTextEncodingN ...

  10. redirect_uri参数错误解决方法

    坑,微信改来改去的,找死人了,以前在“开发者中心”中,现在改在”接口权限“中了.