XmlException:检测到多个文档元素

时间:2011-11-02 15:24:12

标签: c# xml

我正在以一种非常简单的方式阅读XML文件:

XmlTextReader reader = new XmlTextReader(dataPath);

while(reader.Read()){ 
    switch (reader.Name){
        case "language":
            Debug.Log(reader.ReadString());
            break;
        case "file":
            Debug.Log(reader.ReadString());
            break;
        case "arg":
            Debug.Log(reader.ReadString());
            break;
    }

}

我的xml是这样的:

<?xml version="1.0" encoding="ISO-8859-1"?>
 <config>
       <language>EN-US</language>
       <file>\File\Doc\sample.txt</file>
</config>
 <data>
       <arg>LKR</language>
</dara>

我的第一个问题是:

XmlException: Multiple document element was detected. file:///C:/prj/as/sample.xml Line 7, position 2.
Mono.Xml2.XmlTextReader.ReadStartTag ()
Mono.Xml2.XmlTextReader.ReadContent ()
Mono.Xml2.XmlTextReader.Read ()
System.Xml.XmlTextReader.Read ()
LectorXML.Start () (at as/sampleXML.cs:17)

第二,我的输出是语言和文件,但没有arg。也许因为是一个不同的节点?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:7)

您的文档根目录中只能有一个节点元素。您有<config><data>。将它们包装在一个文档元素中:

<document>
  <config>
    <language>EN-US</language>
    <file>\File\Doc\sample.txt</file>
  </config>
  <data>
    <arg>LKR</arg>
  </data>
</document>