在c#中使用XMLWriter创建xml文件 [英] Create xml file with XMLWriter in c#

查看:79
本文介绍了在c#中使用XMLWriter创建xml文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请帮帮我。



编码



Please help me.

Coding

void GetXmlValue(int NoOfColumn)
{
    string pathToXmlFile = @"D:\Manas\prodNew.xml";
    XmlDocument xmldoc = new XmlDocument();
    xmldoc.Load(pathToXmlFile); // xmldoc.Load(@"D:\Prod.xml");
    XmlNode nodeCol = xmldoc.DocumentElement.FirstChild;
    XmlNode nodeRow = xmldoc.DocumentElement;
    XmlNodeList lstRows = nodeRow.ChildNodes;
    XmlNodeList lstColumns = nodeCol.ChildNodes;


    for (int i = 0; i < lstRows.Count; i++)
    {
        string names = lstRows[i].ChildNodes[0].InnerText + " ";// lstColumns[i].InnerText.ToString();
        if (i > 0) Response.Write("<br/>");
        string lines = names + " ";
        for (int j = 1; j < lstColumns.Count; j++) //Check with no of columns
        {
            lines += lstRows[i].ChildNodes[j].InnerText + " "; //lstColumns[j].InnerText.ToString();
            if (j % NoOfColumn == 0)//When it is equla with your no of columns upto last stage
            {
                Response.Write(lines + "<br/>");
                lines = names + " ";
            }
            if (j == lstColumns.Count - 1 &amp;&amp; j % NoOfColumn != 0) //Check at last column
            {
                Response.Write(lines + "<br/>");
            }
        }
    }
}







输出结果: GetXmlValue(4)



Mini 2 1957 324 192

Mini 273 837 83 67

迷你7 40



标准1 466 63 140

标准35 184 23 51

标准72 45



未知98 2734 235 384

未知5223 1261 83 67

未知7 40



Rajesh 90 274 235 384

Rajesh 523 121 73 65

Rajesh 72 40




///////////////////



现在我想创建一个XML文件。比如

12元素就像行一样。 < test>

5个子节点< c0> mini< c0>< c1> 2 like ....




Result of output: of GetXmlValue(4)

Mini 2 1957 324 192
Mini 273 837 83 67
Mini 7 40

Standard 1 466 63 140
Standard 35 184 23 51
Standard 72 45

Unknown 98 2734 235 384
Unknown 5223 1261 83 67
Unknown 7 40

Rajesh 90 274 235 384
Rajesh 523 121 73 65
Rajesh 72 40


///////////////////

Now i want create a XML file.like
12 Element like rows. <test>
5 child nodes <c0>mini<c0><c1>2 like....

推荐答案

http://www.developer.com/ net / csharp / article.php / 3489611 / Manipulate-XML-File-Data-Using-C.htm [ ^ ]


void GetXmlValue(int NoOffixedcolumn, int NoOfColumn)
    {
        string pathToXmlFile = @"D:\Manas\prodNew.xml";
        XmlDocument xmldoc = new XmlDocument();
        xmldoc.Load(pathToXmlFile); // xmldoc.Load(@"D:\Prod.xml");

        XmlNode nodeCol = xmldoc.DocumentElement.FirstChild;
        XmlNode nodeRow = xmldoc.DocumentElement;
        XmlNodeList lstRows = nodeRow.ChildNodes;
        XmlNodeList lstColumns = nodeCol.ChildNodes;
        
        using (XmlWriter xmlwriter=XmlWriter.Create(@"D:\Manas\XMLFile.xml"))
        {
            xmlwriter.WriteStartDocument();
            xmlwriter.WriteStartElement("Root");
        for (int i = 0; i < lstRows.Count; i++)
        {
           
          //  if (i > 0) Response.Write("<br />");
            string lines = "", fixColumns = "";
            for (int k = 0; k < NoOffixedcolumn; k++)
            {
                fixColumns += lstRows[i].ChildNodes[k].InnerText + " ";
            }
            lines = fixColumns;
            int counter = 1;
            for (int j = NoOffixedcolumn; j < lstColumns.Count; j++) //Check with no of columns
            {
               
                lines += lstRows[i].ChildNodes[j].InnerText + " ";
                if (counter % NoOfColumn == 0)//When it is equla with your no of columns upto last stage
                {  xmlwriter.WriteStartElement("Test");
                   
                    Response.Write(lines + "<br />");
                    
                    string[] words = lines.Split(' ');


                    for (int l = 0; l < words.Length-1; l++)
                    {
                        xmlwriter.WriteStartElement("C"+l);
                        xmlwriter.WriteValue(words[l]);
                        xmlwriter.WriteEndElement(); // for C
                    }
                   
                    lines = fixColumns ;
                 
                    xmlwriter.WriteEndElement();//for test
                }
                if (j == lstColumns.Count - 1 && counter % NoOfColumn != 0) //Check at last column 
                {
                    xmlwriter.WriteStartElement("Test");
                    string[] words = lines.Split(' ');
                    for (int l = 0; l < words.Length-1; l++)
                    {
                        xmlwriter.WriteStartElement("C" + l);
                        xmlwriter.WriteValue(words[l]);
                        xmlwriter.WriteEndElement(); // for C
                    }
                    Response.Write(lines + "<br />");
                    xmlwriter.WriteEndElement();//for test
                }
                counter += 1;
            }
        }
        xmlwriter.WriteEndElement();
        xmlwriter.WriteEndDocument();
    }
    }


这篇关于在c#中使用XMLWriter创建xml文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆