C#关于带命名空间的xml解析

本意是想获取所有的xml标签的,结果为了单个标签的获取查了挺久

xml文档

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DecImportResponse xmlns="http://www.chinaport.gov.cn/dec">
  <ResponseCode>1</ResponseCode>
  <ErrorMessage>hhh</ErrorMessage>
  <ClientSeqNo>bbb</ClientSeqNo>
</DecImportResponse>

第一步,加载xml文档

   string uri = @"dd.xml";
            XmlReader xr = XmlReader.Create(uri);
            XmlDocument doc = new XmlDocument();
            doc.Load(xr);//载入源XML文件
            var root = doc.DocumentElement;

创建参数的一些设置
 XmlReaderSettings setting = new XmlReaderSettings();
 setting.Async = true;
 XmlReader xr = XmlReader.Create(uri, setting);

第二步,取所有的标签节点


            var root = doc.DocumentElement;
            foreach(XmlNode items in root.ChildNodes)
            {

                var InnerText = items.InnerText;
                var name = items.Name;
            }

取所有的标签节点没什么,主要是当带有命名空间的时候单个标签的获取。有命名空间时需要给所有的标签加上命名空间,取单个值时通过命名空间来获取

 XmlNamespaceManager nameSpace = new XmlNamespaceManager(doc.NameTable);
            nameSpace.AddNamespace("abc", "http://www.chinaport.gov.cn/dec");

            XmlElement resume = doc.DocumentElement;

            //读取节点内容(要在节点前加命名空间前缀,如本例"abc:")
            // 取单个参数
           var text= resume.SelectSingleNode("abc:ResponseCode", nameSpace);

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值