程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> XmlDocument 創新對象時, 產生 xmlns="" 的解決方案

XmlDocument 創新對象時, 產生 xmlns="" 的解決方案

編輯:關於PHP編程

今天做開發時碰到的XmlDocument 創新對象時, 產生 xmlns="" 的,經過分析總結了問題所在,有需要朋友參考一下,可能能幫助你解決這個問題。  

 
1. 讀取時,應該添加NameSpace.

 

 代碼如下 復制代碼 var exclDef = excl.SelectSingleNode(@"ns:worksheet/ns:sheetData", excl.GetNameSpaceManager("ns"));      
 public static XmlNamespaceManager GetNameSpaceManager(this XmlDocument xml, string NameSpace)       
{           
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xml.NameTable);            nsmgr.AddNamespace(NameSpace, xml.DocumentElement.NamespaceURI);            return nsmgr;       
}

2. 如果創建 節點,沒有指明 NamespaceURI , 則會生成  xmlns="" , 其原因,參考:

       /post_read.asp?BlogID=2524806&PostID=21711977


     如果 ABC 三級的  NameSpaceURI 分別是  XYY , 那麼, 生成的 ABC 的  NameSpaceURI分別是  AB空, C 不會生成 NameSpaceURI , 因為, C和其父項具有相同的 NameSpaceURI .


     所以在創建 節點時, 為了不出現 NameSpaceURI , 請保持和節點父項相同的 NameSpaceURI  .

                    var si = e.OwnerDocument.CreateElement("si", e.NamespaceURI);                    e.AppendChild(si);
     另外, 創新 屬性時, 不要指定 NameSpaceURI , 即 生成的 Xml 就沒有特定的 NameSpaceURI .

                    var r = excl.CreateAttribute("r");


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved