使用此格式的数据集创建xml文件

时间:2018-02-22 09:13:45

标签: c# xml

使用此格式的数据集创建xml文件 -

-<_XPXML Note="" CrtTime="" CN="" DBN="" Srv="" Ver="" AppId="" Class="" IC="" Stock="" Desc="">

<_InvTrans IC="010006" Stock="1" Desc="2 " OppKind="1" Amount="744" Batch="6" Mat="108208"/>
<_InvTrans IC="010006" Stock="1" Desc="2 " OppKind="1" Amount="744" Batch="6" Mat="108208"/>
<_InvTrans IC="010006" Stock="1" Desc="2 " OppKind="1" Amount="744" Batch="6" Mat="108208"/>

</_XPXML>

2 个答案:

答案 0 :(得分:0)

如果要创建一些可以使用XElement的自定义xml。

  

如何创建<_XPXML Note="" CrtTime="" CN="" DBN="" Srv="" Ver="" AppId="" Class="" IC="" Stock="" Desc="">

您可以使用以下代码创建。

var node=new XElement("_XPXML ");
node.SetAttributeValue("Note","");
node.SetAttributeValue("CrtTime","");
// ...
// please write the Attribute
doc.Root.Add(node);

在使用代码之前,您应将新文档作为此代码

XDocument doc = new XDocument();

您应该在文件顶部添加using System.Xml.Linq

设置属性后,可以将其保存到文件中。

doc.Save(xx);

示例:

XDocument doc = new XDocument();
XElement node = new XElement("_XPXML");
node.SetAttributeValue("Note", "");
var invTrans = new XElement("_InvTrans");
node.Add(invTrans);
invTrans.SetAttributeValue("IC", "010006");

doc.Add(node);

StringBuilder str = new StringBuilder();
TextWriter stream = new StringWriter(str);
doc.Save(stream);

str

<?xml version="1.0" encoding="utf-16"?>
<_XPXML Note="">
  <_InvTrans IC="010006" />
</_XPXML>

答案 1 :(得分:0)

尝试使用xml linq:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication23
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable dt = new DataTable("_InvTrans");
            dt.Columns.Add("IC", typeof(string));
            dt.Columns.Add("Stock", typeof(string));
            dt.Columns.Add("Desc", typeof(string));
            dt.Columns.Add("OppKind", typeof(string));
            dt.Columns.Add("Amount", typeof(string));
            dt.Columns.Add("Batch", typeof(string));
            dt.Columns.Add("Mat", typeof(string));

            dt.Rows.Add(new object[] { "010006", "1", "2 ", "1", "744", "6", "108208" });
            dt.Rows.Add(new object[] { "010006", "1", "2 ", "1", "744", "6", "108208" });
            dt.Rows.Add(new object[] { "010006", "1", "2 ", "1", "744", "6", "108208" });
            GetXmlTable(dt);

        }
        static XElement GetXmlTable(DataTable dt)
        {
            string tableName = dt.TableName;
            XElement table = new XElement(tableName);

            string[] columnNames = dt.Columns.Cast<DataColumn>().Select(x => x.ColumnName).ToArray();
            foreach (DataRow row in dt.AsEnumerable())
            {
                XElement xRow = new XElement("_InvTrans");
                table.Add(xRow);
                foreach (string columnName in columnNames)
                {
                    xRow.Add(new XAttribute(columnName, row[columnName]));
                }
            }

            return table;

        }

    }

}