XML输出到文本文件?

时间:2011-08-10 13:52:33

标签: c# arrays

我正在尝试输出一个特定的节点输出到一个文本文件(输出到控制台很好),但我不断收到一条错误消息:'System.Xml.XmlNodeList'到'string []'在这一行:< / p>

string[] lines = elemList;

以下是一些代码:

namespace countC
{
    class Program
    {
        static void Main(string[] args)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load("list.xml");

            XmlElement root = doc.DocumentElement;
            XmlNodeList elemList = root.GetElementsByTagName("version");
            for (int i = 0; i < elemList.Count; i++)
            {
                Console.WriteLine(elemList[i].InnerXml);
                string[] lines = elemList;
                System.IO.File.WriteAllLines(@"C:\VBtest\STIGapp.txt", lines);
            }
            Console.ReadKey();
        } 
    }
}

2 个答案:

答案 0 :(得分:2)

错误是因为您尝试将类型为XmlNodeList的对象分配给string[]类型的变量 - 这两个变量不兼容,您无法从另一个变量中分配一个。

如果你这样做,那么它至少会编译:

string line = elemList[i].InnerXml;
System.IO.File.WriteAllText(@"C:\VBtest\STIGapp.txt", line);

虽然我不确定它会做你想做的事情(如果elemList包含更多的那个元素,上面的内容会覆盖给定的文件)。

答案 1 :(得分:1)

elemList是一个XmlNodeList,你不能将它隐式地转换为字符串数组。

你可以试试这个

string line = elemList[i].InnerText;
System.IO.File.WriteAllLines(@"C:\VBtest\STIGapp.txt", line);

但这当然取决于您的数据。