C#中讀取帶有Xmlns命名空間的XML文件


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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM