XmlDocument 创新对象时, 产生 xmlns="" 的解决方案_PHP教程

WBOY
풀어 주다: 2016-07-20 11:02:56
원래의
791명이 탐색했습니다.

今天做开发时碰到的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");


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/445332.htmlTechArticle今天做开发时碰到的XmlDocument 创新对象时, 产生 xmlns= 的,经过分析总结了问题所在,有需要朋友参考一下,可能能帮助你解决这个问题。 1...
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿