C# 解析带前缀的Xml节点内容

简介: 一般的xml文件相信大家都会解析了,但是遇到有命名空间的带前缀的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进行处理,成功的获取到了我们想要的内容。

目录
相关文章
|
2月前
|
XML 数据采集 API
用Lxml高效解析XML格式数据:以天气API为例
免费Python教程:实战解析中国天气网XML数据,详解Lxml库高效解析技巧、XPath用法、流式处理大文件及IP封禁应对策略,助你构建稳定数据采集系统。
171 0
|
9月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
2132 1
|
9月前
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
296 15
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
7月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
177 2
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
272 1
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)

热门文章

最新文章

推荐镜像

更多
  • DNS