C#关于带命名空间的xml解析
本意是想获取所有的xml标签的,结果为了单个标签的获取查了挺久xml文档<?xml version="1.0" encoding="UTF-8" standalone="yes"?><DecImportResponse xmlns="http://www.chinaport.gov.cn/dec"><ResponseCode>1</ResponseCode
·
本意是想获取所有的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);

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