C# 解析带前缀的Xml节点内容
一般的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进行处理,成功的获取到了我们想要的内容。
转载于:https://blog.51cto.com/csharper/1345985
C# 解析带前缀的Xml节点内容相关推荐
- JavaScript 技术篇-textContent获取dom节点text文本内容带空格,js获取带空格的dom节点内容
我们用 innerText 获取到的文本信息是除掉空格的.但有时根据需求我们需要获取到完整的文本信息. 请看效果图: 用 textContent 就可以很好的解决了. 喜欢的点个赞❤吧!
- dom4j生成xml节点内容换行
row5cell4data1.addCDATA("出生日期: 年 月 日\n或年龄:");
- php如何读出xml的节点内容 两个例子
第一个例子: PHP与XML联系紧密,下面是一个较简单的解析XML节点数据的例子,示例中自定义有一个XML样例文件代码,通过PHP将依次读取出XML节点中的id.name和email数据,是读取较大的 ...
- Java解析XML报文内容及标签属性
前言 JSON格式的报文解析,虽然json串短小精悍,也能有效表达层次结构,但是每个元素只能找到对应的元素值,不能体现更丰富的样式特征.比如某个元素除了要传输它的字符串文本,还想传输该文本的类型.字体 ...
- php获取xml某个节点的所有内容,怎样输出XML所有的同名节点内容?
现有的PHP代码输出XML节点时,只能输出第一个同名节点内容"100". 请问怎样才能输出所有节点的内容呢? 现有代码: /* $xmlstring 原内容: - id*cn 10 ...
- xml 纯内容标签_Python小课堂XML 解析
Python3 XML 解析 一.什么是 XML? XML 指可扩展标记语言(eXtensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记 ...
- python解析xml读取指定属性_python批量修改xml某些内容和属性
在训练时,有时候需要将jpg格式转换为png格式,顺便也要把jpg标注的xml文件转换为png的xml文件.例如,需要把xml文件中的图像后缀名".jpg"批量去掉,这时候就需要批 ...
- XML系列之--解析电文格式的XML(二)
上一节介绍了XML的结构以及如何创建.讲到了XML可作为一种简单文本存储数据,把数据存储起来,以XML的方式进行传递.当接收到XML时,必不可少的就是对其进行解析,捞取有效数据,或者将第三方数据以节点 ...
- 带命名空间的XML的dom4j应用转
Element root = document.getRootElement(); List recordenvlist = document.selectNodes("// ...
最新文章
- python_day9线程、进程和协程
- Linux 常用检测命令
- fseek linux 大文件_一文搞懂Linux系统开发
- linux命令修改管理员时间,Linux管理员必须知道的sudo命令
- 类Xadmin插件--海豚插件
- dueros模拟测试没有请求后台_DuerOS开放平台
- (剑指Offer)面试题49:把字符串转换为整数
- 织梦文章页模板使用php语法,织梦文章页面模板顶一下踩一下调用教程
- (转自孟岩的CSDN)理解矩阵
- 基于Python的管理系统(附源码)
- 如何在群晖系统中安装cpolar(群晖7.X版)
- mongodb下载安装和基本操作
- zblog模板php免费三栏,天兴工作室三栏布局zblog模板
- Gson的基本介绍和使用
- DHCP如何分配IP地址
- golang学习之negroni对于第三方中间件的使用分析
- NOJ——1665夜神的思考(YY+组合问题+分类讨论)
- python1000以内水仙花数_python 计算1000以内的水仙花数
- ginapi服务器性能,基于gin web框架搭建RESTful API服务
- 删除word文件限制编辑密码
热门文章
- 【mybatis】时间范围 处理时间格式问题
- 1、webpack入门例子。
- 运行js提示库没有注册错误8002801d的解决办法
- Apache下禁止显示网站目录结构的方法
- 对TRIM SCSI命令的一些分析
- BZOJ1251序列终结者——非旋转treap
- java基础-多线程应用案例展示
- 执行php程序的时候,报错Allowed memory size of 134217728 bytes exhausted (tried to allocate 83 bytes)...
- 使用dd工具对磁盘RAID5和10进行I/O性能测试
- php处理管道文件流