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
[解决办法]
添加之后 保存 读取
[解决办法]
[解决办法]
xmldocument的话,你create了之后,只是放到内存中而已。而getElementById是从你真正的文件对象里查找的,所以当然找不到了