读书人

XmlDocument的getElementById()返回nu

发布时间: 2012-04-04 16:38:51 作者: rapoo

XmlDocument的getElementById()返回null
初学C#,今天遇到了一个问题,请高手指点

我用一个XmlDocument对象加载了一个xml文件,然后用createElement()方法生成了一些新结点<Item>放到里面,
但是奇怪的事情发生了

用getElementById()取原来文件中有的元素时,能取到
用getElementById()取动态新生成的元素时,返回null

Xml文件格式如下:

XML code
<!DOCTYPE Category [    <!ELEMENT Category ANY>    <!ELEMENT Item     EMPTY>    <!ATTLIST Category id      ID    #REQUIRED>    <!ATTLIST Category name    CDATA #IMPLIED>    <!ATTLIST Category comment CDATA #IMPLIED>    <!ATTLIST Category text    CDATA #IMPLIED>    <!ATTLIST Category count   CDATA #IMPLIED>    <!ATTLIST Item     id      ID    #REQUIRED>    <!ATTLIST Item     name    CDATA #IMPLIED>    <!ATTLIST Item     count   CDATA #IMPLIED>]><Category id="10000">  <Category id="11000">  </Category></Category>


这里是对它的操作
C# code
            XmlElement element = doc.CreateElement("ITEM", doc.NamespaceURI);                        element.SetAttribute("id", id);            element.SetAttribute("name", name);            element.SetAttribute("text", name);            parent.AppendChild(element);            doc.getElementById(id); //这里返回null


[解决办法]
添加之后 保存 读取
[解决办法]
探讨

我是楼主,补全一下代码

C# code

XmlElement parent = doc.getElementById("11000"); //这里取的东西正常
XmlElement element = doc.CreateElement("ITEM", doc.NamespaceURI);

……

[解决办法]
xmldocument的话,你create了之后,只是放到内存中而已。而getElementById是从你真正的文件对象里查找的,所以当然找不到了

读书人网 >C#

热点推荐