简体   繁体   English

xml 到 csv 转换 c#

[英]xml to csv convert c#

i am writting ac# fonction that convert xml file to csv file but i get an error which i cannot find a solution can any one help?我正在编写将 xml 文件转换为 csv 文件的 ac# 函数,但我收到一个错误,我找不到解决方案,有人可以帮忙吗?

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];
}

at line 4 : ds.ReadXml(stringReader);在第 4 行:ds.ReadXml(stringReader); i'am getting "Failed to initialize the configuration system"我收到“无法初始化配置系统”

<?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>

Your XML is not a valid XML file and you need to escape double quote characters in your attributes if it is intended to be there.您的 XML 不是有效的 XML 文件,如果要在属性中使用双引号字符,则需要对其进行转义。

How to escape double quotes in XML attributes values? 如何在 XML 属性值中转义双引号?

Replace:代替:

"

with

&quot;

I tried this and its working.我试过这个和它的工作。 Problem must be with the double quotations you have used in XML to read through File reader.问题一定是您在 XML 中使用的双引号通过文件阅读器读取。 Check the 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];

I just removed the double quotations to read from file and it works fine.我刚刚删除了从文件中读取的双引号,它工作正常。 Following is the new XML以下是新的 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];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM