Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XML输出到文本文件?_C#_Arrays - Fatal编程技术网

C# XML输出到文本文件?

C# XML输出到文本文件?,c#,arrays,C#,Arrays,我正在尝试将特定节点输出到文本文件(输出到控制台),但在这一行中不断收到错误消息:“System.Xml.XmlNodeList”到“string[]”: string[] lines = elemList; 下面是更多的代码: namespace countC { class Program { static void Main(string[] args) { XmlDocument doc = new XmlDocu

我正在尝试将特定节点输出到文本文件(输出到控制台),但在这一行中不断收到错误消息:“System.Xml.XmlNodeList”到“string[]”:

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();
        } 
    }
}
namespace countC
{
班级计划
{
静态void Main(字符串[]参数)
{
XmlDocument doc=新的XmlDocument();
doc.Load(“list.xml”);
XmlElement根=doc.DocumentElement;
XmlNodeList elemList=root.GetElementsByTagName(“版本”);
for(int i=0;i
elemList是一个XmlNodeList,不能隐式地将其转换为字符串数组

你可以试试这个

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

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

elemList是一个XmlNodeList,您不能将其隐式转换为字符串数组

你可以试试这个

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

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

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

如果您改为这样做,那么它至少会编译:

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

虽然我不确定它是否能满足您的要求(如果
elemList
包含多个元素,则上述元素将继续覆盖给定的文件)。

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

如果您改为这样做,那么它至少会编译:

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

尽管我不确定它是否能满足您的要求(如果
elemList
包含多个元素,则上述元素将继续覆盖给定的文件)。

Ok,这很有效。奇怪的是文本文件没有保存循环。@n这可能是因为
InnerXml
属性是空字符串,如果元素为空,就会出现这种情况。在调试器中检查
line
的值。啊,好的,仔细检查数据,它只保存最后一个循环。@n这是因为
writealText
覆盖了现有文件,所以每个循环文件都被覆盖。所以在谷歌上搜索了一个小时后,找到了一个关于如何不让内容被覆盖的主题,我找到了一个AppendAllText方法。好的,很酷。奇怪的是文本文件没有保存循环。@n这可能是因为
InnerXml
属性是空字符串,如果元素为空,就会出现这种情况。在调试器中检查
line
的值。啊,好的,仔细检查数据,它只保存最后一个循环。@n这是因为
writealText
覆盖了现有文件,所以每个循环文件都被覆盖。所以在谷歌上搜索了一个小时后,找到了一个关于如何不让内容被覆盖的主题,我找到了AppendAllText方法。Hi Russ,我尝试过,但收到一条错误消息:无法从'string'转换为'System.Collections.Generic.IEnumerable'我以前尝试过该选项,但不幸的是没有工作抱歉,WriteAllines可能应该更改为WriteLineHi Russ,我试过了,但收到一条错误消息:无法从“字符串”转换为“System.Collections.Generic.IEnumerable”。我以前确实尝试过该选项,但不幸的是没有工作。抱歉,WriteAllines可能应该更改为WriteLine