C#开发中获取XML节点值,XML转对象案例

一、获取XML节点值

string strMsg="XML内容";XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(strMsg);// 创建命名空间管理器
XmlNamespaceManager nsManager = new XmlNamespaceManager(xmlDoc.NameTable);
nsManager.AddNamespace("soapenv", "http://schemas.xmlsoap.org/soap/envelope/");
nsManager.AddNamespace("ns1", "http://webservice.app.bizinterface.custom.eas.kingdee.com");// 调试输出,查看 XML 结构
Console.WriteLine("XML 结构:");
Console.WriteLine(xmlDoc.InnerXml);// 查找rspCode和rspMsg的节点
XmlNode rspCodeNode = xmlDoc.SelectSingleNode("//rspCode", nsManager);
XmlNode rspMsgNode = xmlDoc.SelectSingleNode("//rspMsg", nsManager);// 提取内容
string rspCode = rspCodeNode?.InnerText;
string rspMsg = rspMsgNode?.InnerText;

二、XML转对象案例

string strMsg="xml内容";XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(strMsg);// 创建命名空间管理器
XmlNamespaceManager nsManager = new XmlNamespaceManager(xmlDoc.NameTable);
nsManager.AddNamespace("soapenv", "http://schemas.xmlsoap.org/soap/envelope/");
nsManager.AddNamespace("ns1", "http://webservice.app.bizinterface.custom.eas.kingdee.com");// 调试输出,查看 XML 结构
Console.WriteLine("XML 结构:");
Console.WriteLine(xmlDoc.InnerXml);// 查找rspCode和rspMsg的节点
XmlNode getAPaymentBillsReturn = xmlDoc.SelectSingleNode("//getAPaymentBillsReturn", nsManager);
string vAPaymentBillsReturn = getAPaymentBillsReturn?.InnerXml;var lstBills = ConvertToObject(vAPaymentBillsReturn);// 公共方法将XML字符串转换为对象
public static XMLDATA ConvertToObject(string xmlData)
{XMLDATA data;XmlSerializer serializer = new XmlSerializer(typeof(XMLDATA));using (System.IO.StringReader reader = new System.IO.StringReader(xmlData)){data = (XMLDATA)serializer.Deserialize(reader);}return data;
}[XmlRoot(ElementName = "XMLDATA")]
public class XMLDATA
{[XmlElement(ElementName = "bill")]public List<Bill> Bills { get; set; }
}// 定义类来映射XML结构
[XmlRoot(ElementName = "bill")]
public class Bill
{[XmlElement(ElementName = "billNumber")]public string BillNumber { get; set; }[XmlArray(ElementName = "entrys")][XmlArrayItem(ElementName = "entry")]public List<Entry> Entrys { get; set; }
}// 定义类来映射XML结构
[XmlRoot(ElementName = "entry")]
public class Entry
{/// <summary>/// 付审单编码/// </summary>[XmlElement(ElementName = "payRequestBillNo")]public string PayRequestBillNo { get; set; }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/791441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我与C++的爱恋:内联函数,auto

​ ​ &#x1f525;个人主页&#xff1a;guoguoqiang. &#x1f525;专栏&#xff1a;我与C的爱恋 ​ 一、内联函数 1.内联函数的概念 内联函数目的是减少函数调用的开销&#xff0c;通过将每个调用点将函数展开来实现。这种方法仅适用于那些函数体小、调用频繁的函数。 …

redis事务(redis features)

redis支持事务&#xff0c;也就是可以在一次请求中执行多个命令。redis中的事务主要是通过MULTI和EXEC这两个命令来实现的。 MULTI命令用来开启一个事务&#xff0c;事务开启之后&#xff0c;所有的命令就都会被放入到一个队列中&#xff0c;最后通过一个EXEC命令来执行事务中…

基于java+SpringBoot+Vue的网上订餐系统设计与实现

基于javaSpringBootVue的网上订餐系统设计与实现 开发语言: Java 数据库: MySQL技术: Spring Boot JSP工具: IDEA/Eclipse、Navicat、Maven 系统展示 前台展示 菜品浏览与选择&#xff1a;用户可以浏览不同的菜品分类&#xff0c;并选择心仪的菜品。 订单创建与管理&…

任意文件下载漏洞

1.文件下载漏洞存在的位置 文件经过php处理可能存在文件下载漏洞&#xff0c;配合目录遍历漏洞使用 2.目录遍历漏洞检验方法 测试是否存在目录遍历漏洞&#xff1a;在网站网址中间添加随意写一个文件名../&#xff08;返回上一级&#xff09;进行测试&#xff0c;没有报错就…

备战蓝桥杯--数论与搜索刷题2

话不多说&#xff0c;直接看题&#xff1a; 1.辗转相减法 我们不妨假设原等比数列a,a*(q/p),a*(q/p)^2.... 那么x1,,,,xn就是其中的n项&#xff0c;xi/x1(q/p)^b&#xff0c;假设最大比例为(q/p)^k&#xff0c;&#xff0c;那么一定有(q/p)^(k*s)(q/p)^b&#xff0c;即k是b的…

【Servlet】Servlet入门

文章目录 一、介绍二、入门案例导入servlet-api的解决办法 一、介绍 概念&#xff1a;server applet&#xff0c;即&#xff1a;运行在服务器端的小程序 Servlet就是一个接口&#xff0c;定义了Java类被浏览器访问到&#xff08;tomcat识别&#xff09;的规则。 将来我们定义…

【项目新功能开发篇】开发编码

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

mysql 磁盘空间100%

MySQL大事务可能会导致过多的占用临时文件&#xff0c;导致磁盘空间撑满的问题 本例说明下binlog cache产生的临时文件 案例复现 调小binlog_cache_size&#xff0c;让DML使用临时文件 使用存储过程模拟大事务 创建表 create table t1( id int AUTO_INCREMENT, name varchar…

Rust---复合数据类型之字符串与切片(2)

目录 字符串操作删除 (Delete)连接 (Concatenate) 字符串转义 前情回顾: Rust—复合数据类型之字符串&#xff08;1&#xff09; 字符串操作 删除 (Delete) 删除方法仅适用于 String 类型&#xff0c;分别是&#xff1a; pop()&#xff0c;remove()&#xff0c;truncate()&a…

【Redis系列】Redis安装与使用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

使用subprocess包来在python代码实时查看GPU利用率

最近又被GPU利用率问题导致训练不高效的问题搞到了&#xff08;恼&#xff09;&#xff0c;所以在py使用代码看看是哪出了问题。 import subprocessdef get_gpu_utilization():# 运行nvidia-smi命令smi_output subprocess.check_output([nvidia-smi, --query-gpuutilization.…

保研线性代数复习3

一.基底&#xff08;Basis&#xff09; 1.什么是生成集&#xff08;Generating Set&#xff09;&#xff1f;什么是张成空间&#xff08;Span&#xff09;&#xff1f; 存在向量空间V(V&#xff0c;&#xff0c;*)&#xff0c;和向量集&#xff08;xi是所说的列向量&#xff…

大模型prompt技巧——思维链(Chain-of-Thought)

1、Zero-shot、One-shot、Few-shot 与fintune prompt的时候给出例子答案&#xff0c;然后再让模型回答。 2、zero-shot-CoT “Let’s think step by step”有奇迹效果 3、多数投票提高CoT性能——自洽性&#xff08;Self-consistency&#xff09; 多个思维链&#xff0c;然后取…

WordPress 6.5 “里贾纳”已经发布

WordPress 6.5 “里贾纳”已经发布&#xff0c;其灵感来自著名爵士小提琴家Regina Carter的多才多艺。雷吉娜是一位屡获殊荣的艺术家和著名的爵士乐教育家&#xff0c;以超越流派而闻名&#xff0c;她在古典音乐方面的技术基础和对爵士乐的深刻理解为她赢得了大胆超越小提琴所能…

数据库面试题之Mysql

(1)Mysql主从架构原理 主库把数据变更写入binlog从库的IO线程对主库发起dump请求主库IO线程推送binlog至从库从库IO线程写入本地relay log从库sql线程读取relay log,保持和主库数据一致(2)B+树和B树的区别? 结构方面: B树每个节点可以有多于一个的关键字,而非叶子节点可…

修改element-ui table组件展开/收起图标、支持点击行展开/收起、隐藏不可展开行得图标

Element中table默认支持的&#xff0c;展开和收起功能&#xff0c;如下&#xff1a; 针对表格的展开收起&#xff0c;本文改造的主要有3点&#xff1a; 1、修改展开/收起的图标&#xff1b; 2、对于不支持展开/收起的行&#xff0c;隐藏图标&#xff1b; 3、点击行&#xff0…

宝塔面板安装nginx流媒体服务器(http-flv)

前文介绍了使用nginx搭建流媒体服务器,实现了hls切片方式播放,不过延迟较长。本文采用nginx搭建支持http-flv方式的流媒体服务器,用以测试期性能。 目录 一、服务器操作系统安装 二、在控制台安装宝塔面板

windows10 上安装 docker

windows 10 上安装 docker 官方目前给的方案是利用 Docker Desktop 来安装 docker 环境 一、安装前准备工作 1.1 检查系统要求 Windows 10 64 位&#xff1a;Home 或 Pro 2004&#xff08;内部版本 19041&#xff09;或更高版本&#xff0c;或者 Enterprise 或 Education 1…

Instagram 广告如何投放、运作?

创建 Instagram 广告有两种选择。你可以通过 Promote 将任何帖子转变成广告&#xff0c;类似于 Facebook 的 Boost 按钮。你只需要决定当人们点击广告时将他们送到哪里&#xff0c;谁应该看到广告&#xff0c;以及你想花多少钱。 你也可以用 Facebook 广告管理工具&#xff08…