C# XML输出到文本文件?
我正在尝试将特定节点输出到文本文件(输出到控制台),但在这一行中不断收到错误消息:“System.Xml.XmlNodeList”到“string[]”: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
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