我正在编写一个将 xml 文件转换为 csv 文件的 C# 功能,但我收到一个错误,我找不到解决方案,任何人都可以提供帮助吗?
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>
您的 XML不是有效的 XML 文件,如果它打算存在,则需要在属性中转义双引号字符。
如何转义XML属性值中的双引号?
取代:
"
跟
"
我试过这个,它的工作。问题一定出在您用于读取文件读取器的 XML 中使用的双引号上。检查 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(@"PathMyFile.xml");
DataSet ds = new DataSet();
StringReader stringReaders = new StringReader(xmlString);
ds.ReadXml(stringReaders);
DataTable dtstring = new DataTable();
dtstring = ds.Tables[0];