Я пишу функцию C#, которая преобразует файл xml в файл csv, но я получаю сообщение об ошибке, решение которой я не могу найти, может ли кто-нибудь помочь?
protected static string page_load()
{
string xmlString = System.IO.File.ReadAllText(@"D:....file.xml");
DataSet ds = new DataSet();
StringReader stringReader = new StringReader(xmlString);
ds.ReadXml(stringReader);
DataTable dtstring = new DataTable();
dtString = ds.Tables[0];
}
в строке 4: ds.ReadXml (stringReader); я получаю "Не удалось инициализировать систему конфигурации"
<?xml version = ""1.0"" encoding = ""utf-8"" ?>
<DOCUMENT>
<ABCS>
<ABC>
<abc_id style_sid = ""-4939636236138949558"" style_code = """"/>
<abc item_sid = ""-4939635934019714433"" upc = ""30109"" use_qty_decimals = ""0"" prod_cost = """" reclass_item_sid = """"/>
<abc_c_d>
<abc_c_ds no = ""1"" value = """"/>
<abc_c_ds no = ""2"" value = """"/>
<abc_c_ds no = ""3"" value = """"/>
<abc_c_ds no = ""4"" value = """"/>
<abc_c_ds no = ""5"" value = """"/>
<abc_c_ds no = ""6"" value = """"/>
<abc_c_ds no = ""7"" value = """"/>
<abc_c_ds no = ""8"" value = """"/>
<abc_c_ds no = ""9"" value = """"/>
<abc_c_ds no = ""10"" value = """"/>
<abc_c_ds no = ""11"" value = """"/>
<abc_c_ds no = ""12"" value = """"/>
<abc_c_ds no = ""13"" value = """"/>
<abc_c_ds no = ""14"" value = """"/>
</abc_c_d>
</ABC>
</ABCS>
</DOCUMENT>
Являются ли двойные двойные кавычки преднамеренными? Кроме того, действительно ли путь к файлу в вашем коде "D: .... file.xml" или это просто пример?
Похоже, ваш app.config / web.config не работает.
@Neil, путь в моем коде правильный, это всего лишь пример





Ваш XML не является допустимым XML-файлом, и вам нужно избегать двойных кавычек в ваших атрибутах, если он предназначен для этого.
Как избежать двойных кавычек в значениях атрибутов XML?
Заменять:
"
с участием
"
xml - это просто пример, но когда я получаю его от D: .... file.xml, я получаю \ "name \", поэтому я не думаю, что это проблема с & quot;
Я попытался добавить правильный XML-файл из вашего примера, и с этим он работает. Протестировано в .NET Framework 4.6.1 и .NET Framework 4. Проблема должна быть в XML-файле, который вы используете, но не передаете.
Я пробовал это, и он работал. Проблема должна быть в двойных кавычках, которые вы использовали в XML для чтения через File reader. Проверить XML
string xmlString = @"<?xml version = ""1.0"" encoding = ""utf-8"" ?>
<DOCUMENT>
<ABCS>
<ABC>
<abc_id style_sid = ""-4939636236138949558"" style_code = """"/>
<abc item_sid = ""-4939635934019714433"" upc = ""30109"" use_qty_decimals = ""0"" prod_cost = """" reclass_item_sid = """"/>
<abc_c_d>
<abc_c_ds no = ""1"" value = """"/>
<abc_c_ds no = ""2"" value = """"/>
<abc_c_ds no = ""3"" value = """"/>
<abc_c_ds no = ""4"" value = """"/>
<abc_c_ds no = ""5"" value = """"/>
<abc_c_ds no = ""6"" value = """"/>
<abc_c_ds no = ""7"" value = """"/>
<abc_c_ds no = ""8"" value = """"/>
<abc_c_ds no = ""9"" value = """"/>
<abc_c_ds no = ""10"" value = """"/>
<abc_c_ds no = ""11"" value = """"/>
<abc_c_ds no = ""12"" value = """"/>
<abc_c_ds no = ""13"" value = """"/>
<abc_c_ds no = ""14"" value = """"/>
</abc_c_d>
</ABC>
</ABCS>
</DOCUMENT>";
DataSet ds = new DataSet();
StringReader stringReaders = new StringReader(xmlString);
ds.ReadXml(stringReaders);
DataTable dtstring = new DataTable();
dtstring = ds.Tables[0];
Я просто удалил двойные кавычки для чтения из файла, и он отлично работает. Ниже приводится новый XML
<?xml version = "1.0" encoding = "utf-8" ?>
<DOCUMENT>
<ABCS>
<ABC>
<abc_id style_sid = "-4939636236138949558" style_code = ""/>
<abc item_sid = "-4939635934019714433" upc = "30109" use_qty_decimals = "0" prod_cost = "" reclass_item_sid = ""/>
<abc_c_d>
<abc_c_ds no = "1" value = ""/>
<abc_c_ds no = "2" value = ""/>
<abc_c_ds no = "3" value = ""/>
<abc_c_ds no = "4" value = ""/>
<abc_c_ds no = "5" value = ""/>
<abc_c_ds no = "6" value = ""/>
<abc_c_ds no = "7" value = ""/>
<abc_c_ds no = "8" value = ""/>
<abc_c_ds no = "9" value = ""/>
<abc_c_ds no = "10" value = ""/>
<abc_c_ds no = "11" value = ""/>
<abc_c_ds no = "12" value = ""/>
<abc_c_ds no = "13" value = ""/>
<abc_c_ds no = "14" value = ""/>
</abc_c_d>
</ABC>
</ABCS>
</DOCUMENT>
string xmlString = System.IO.File.ReadAllText(@"Path\MyFile.xml");
DataSet ds = new DataSet();
StringReader stringReaders = new StringReader(xmlString);
ds.ReadXml(stringReaders);
DataTable dtstring = new DataTable();
dtstring = ds.Tables[0];
Можете ли вы опубликовать фрагмент вашего XML-файла?