+ -
当前位置:首页 → 问答吧 → XML文档只允许有一个根结点?

XML文档只允许有一个根结点?

时间:2011-12-17

来源:互联网

C# code

            XmlDocument doc = new XmlDocument();
            XmlElement newRoot = doc.CreateElement("根结点");
            doc.AppendChild(newRoot);

            //XmlElement newRoot2 = doc.CreateElement("根结点2");
            //doc.AppendChild(newRoot2);

            XmlNode node = (XmlNode)newRoot;

            XmlElement newNode0 = doc.CreateElement("子结点0");
            node.AppendChild(newNode0);

            XmlElement newNode1 = doc.CreateElement("子结点1");
            node.AppendChild(newNode1);

            XmlNode cnd = doc.SelectSingleNode("/根结点");

            foreach(XmlNode nd in cnd.ChildNodes)
            {
                this.textBox1.Text += nd.Name + "\r\n";
            }



如果执行注释掉的那两行代码,程序运行时会报出异常:
"此文档已具有DocumentElement结点"

我将该异常理解为:Xml文档只充许有一个根结点。请问我这样理解对不对?

如果正确,经我测试doc.ChildNodes里面只包含一个"根结点",只有一个节点,doc的ChildNodes不是名不符实了吗?

作者: Win32FanEx   发布时间: 2011-12-17

上次我也遇到这个问题.

作者: yanele   发布时间: 2011-12-17

是的
Xml文档只充许有一个根结点

作者: net_lover   发布时间: 2011-12-17

是的
XML文档的结构是一个树形等级结构。文档必须有一个唯一的根结点,根节点包含所有其它节点。

作者: kongwei521   发布时间: 2011-12-17

只允许一个根节点

作者: enter89   发布时间: 2011-12-17

当然,xml文件格式规范中规定只能有一个根节点,

作者: stonespace   发布时间: 2011-12-17

引用 2 楼 net_lover 的回复:
是的
Xml文档只充许有一个根结点


小弟还请大家指点下我第二个不解:
doc.ChildNodes,即然只能有一个根节点,那么doc.rootNode多好,ChildNodes名不符实啊,我取根结点还得用doc.ChildNodes[0]或者doc.SelectSingleNode("/根结点"),感觉不爽啊。

作者: Win32FanEx   发布时间: 2011-12-17

up一下,请大虾们释疑

作者: Win32FanEx   发布时间: 2011-12-17

doc.DocumentElement就是根节点元素

作者: net_lover   发布时间: 2011-12-17