XmlException:检测到多个文档元素

leg*_*ami 3 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;
    }
Run Code Online (Sandbox Code Playgroud)

}

我的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>
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是:

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)
Run Code Online (Sandbox Code Playgroud)

第二,我的输出是语言和文件,但没有arg.也许因为是一个不同的节点?我怎样才能解决这个问题?

drd*_*cox 7

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

<document>
  <config>
    <language>EN-US</language>
    <file>\File\Doc\sample.txt</file>
  </config>
  <data>
    <arg>LKR</arg>
  </data>
</document>
Run Code Online (Sandbox Code Playgroud)