本意是想获取所有的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);

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐