Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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#_Xml - Fatal编程技术网

C# 将数据集转换为xml字符串

C# 将数据集转换为xml字符串,c#,xml,C#,Xml,我试图做的是将数据集转换为xml字符串。其中t返回包含datasetname和datatable name的输出。我只想删除datatable名称,只想使用dataset节点标记名进行绑定。我该怎么办。这是我的密码 if (sID > 0) { String retXml = String.Empty; DataSet ds = new DataSet(); DataTable dtpdfAndEmailInfo = new DataTable("pdfandema

我试图做的是将数据集转换为xml字符串。其中t返回包含datasetname和datatable name的输出。我只想删除datatable名称,只想使用dataset节点标记名进行绑定。我该怎么办。这是我的密码

if (sID > 0)
{
    String retXml = String.Empty;
    DataSet ds = new DataSet();
    DataTable dtpdfAndEmailInfo = new DataTable("pdfandemailinfo");
    DataRow dr = dtpdfAndEmailInfo.NewRow();

    dtpdfAndEmailInfo.Clear();
    dtpdfAndEmailInfo.Columns.Add("mailFrom", typeof(string));
    dtpdfAndEmailInfo.Columns.Add("mailTo", typeof(string));
    dtpdfAndEmailInfo.Columns.Add("mailCC", typeof(string));
    dtpdfAndEmailInfo.Columns.Add("mailBCC", typeof(string));
    dtpdfAndEmailInfo.Columns.Add("mailSubject", typeof(string));
    dtpdfAndEmailInfo.Columns.Add("salesorderpdfurl", typeof(string));
    ds.Tables.Add(dtpdfAndEmailInfo);
    dtpdfAndEmailInfo.Rows.Add(dr);
    String fileDirectory="D:\\po\\Sandbox\\po\\BOID_858_ORGID_571\\SalesOrderPdf\\" ;
    String FileName ="BOID_858_SOID_151382.pdf";     
    for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
    {
        ds.Tables[0].Rows[i]["mailFrom"] = "someemailid@yopmail.com";
        ds.Tables[0].Rows[i]["mailTo"] = "someemailid1@yopmail.com";
        ds.Tables[0].Rows[i]["mailCC"] = "someemailid2@yopmail.com";
        ds.Tables[0].Rows[i]["mailSubject"] = "Test";
        if (System.IO.File.Exists(Path.Combine(fileDirectory, FileName)))
        {
            ds.Tables[0].Rows[i]["SalesOrderPdfURL"] = Path.Combine(fileDirectory, FileName);
        }
        else
        {
            ds.Tables[0].Rows[i]["SalesOrderPdfURL"] = "";
        }
    }

    Cmd.ResponseStatus.RowCount = ds.Tables[0].Rows.Count;
    retXml = Util.GetXmlList(ds, "salesorderPdfAndEmailInfo", "pdfandemailinfos");
}

public static string GetXmlList(DataSet ds, String rootNode, String itemNode)
{
    return GetXmlList(ds, rootNode, @"cls=""dataArray""", itemNode, @"cls=""dataItem""");
}

public static string GetXmlList(DataSet ds, String rootNode, String rootAttribute, String itemNode, String itemAttribute)
{
    String rootNodeStartTag = String.Format("<{0} {1}>", rootNode, rootAttribute);
    String rootNodeEndTag = String.Format("</{0}>", rootNode);
    String nodeStartTag = String.Format("<{0} {1}>", itemNode, itemAttribute);
    String nodeEndTag = String.Format("</{0}>", itemNode);

    string retXML = ds.GetXml().Replace("<NewDataSet>", rootNodeStartTag).Replace("<Table>", nodeStartTag).Replace("</NewDataSet>", rootNodeEndTag).Replace("</Table>", nodeEndTag);
    return HttpUtility.HtmlDecode(retXML);
}
我想要的响应应该是删除datatable节点标记名。任何帮助都将被通知。 回答应该是这样的

"salesorderPdfAndEmailInfo": {
    "mailFrom": "someemailid@yopmail.com",
    "mailTo": "someemailid1@yopmail.com",
    "mailCC": "someemailid2@yopmail.com",
    "mailSubject": "Test",
    "salesorderpdfurl": "http://localhost/por/D:\\po\\Sandbox\\po\\BOID_858_ORGID_571\\SalesOrderPdf\\BOID_858_SOID_151382.pdf"
}

您看过使用XMLSerializer吗?如果您的最终目标是拥有数据集的xml表示,那么我将创建一个XSD。然后,您可以使用它生成用于序列化为XML的类。Wheels73是正确的。创建列表,然后用数据填充,然后使用standart Library将其序列化为XML您有一个jason字符串而不是XML。使用以下命令获取xml字符串:DataSet ds=new DataSet();StringWriter编写器=新的StringWriter();WriteXml(writer,XmlWriteMode.WriteSchema);
"salesorderPdfAndEmailInfo": {
    "mailFrom": "someemailid@yopmail.com",
    "mailTo": "someemailid1@yopmail.com",
    "mailCC": "someemailid2@yopmail.com",
    "mailSubject": "Test",
    "salesorderpdfurl": "http://localhost/por/D:\\po\\Sandbox\\po\\BOID_858_ORGID_571\\SalesOrderPdf\\BOID_858_SOID_151382.pdf"
}