首页 > Windows开发 > 详细

C#中读取带有Xmlns命名空间的XML文件

时间:2017-02-05 22:43:15      阅读:279      评论:0      收藏:0      [点我收藏+]

XML文件格式如下:

<?xml version="1.0" encoding="utf-8"?>
<Resume xmlns="http://ns.test.com/resumes">
  <PersonalInformation>
    <GeneralInformation>
      <Name><![CDATA[张三]]></Name>
      <Birthday>1978-06</Birthday>
      <Gender>男</Gender>
    </GeneralInformation>

  </PersonalInformation>

</Resume>

由于这个XML文件加了Xmlns命名空间,如果直接用xxx.SelectSingleNode("PersonalInformation/GeneralInformation/Name"),结果返回null;

解决办法:

                XmlReaderSettings xs = new XmlReaderSettings();
                xs.XmlResolver = null;
                xs.ProhibitDtd = false;                
                XmlReader xr = XmlReader.Create(sourceFile, xs);
                XmlDocument doc = new XmlDocument();
                doc.Load(xr);//载入源XML文件

                XmlNamespaceManager nameSpace = new XmlNamespaceManager(doc.NameTable);
                nameSpace.AddNamespace("abc", "http://ns.test.com/resumes");               

                XmlElement resume = doc.DocumentElement;

               //读取节点内容(要在节点前加命名空间前缀,如本例"abc:")

               resume.SelectSingleNode("abc:PersonalInformation/abc:GeneralInformation/abc:Name", nameSpace).InnerText.Trim()

 

C#中读取带有Xmlns命名空间的XML文件

原文:http://www.cnblogs.com/chenhailong/p/6368612.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!