簡體   English   中英

如何在C#Winform中將字符串從Richtextbox插入XML文件

[英]How to insert string from Richtextbox into XML File in C# Winform

我將xml代碼放入RichTextBox並且用戶可以在程序運行時在此處進行更改。 我想在創建過程中將RichTextBox的內容保存在xml文件中。

注意:我已經在創建一個xml文件。 我想在創建過程中將RichTextBox的內容保存到xml文件中。

saveFileDialog1.Filter = "XML files(.xml)|*.xml|all Files(*.*)|*.*";
saveFileDialog1.FilterIndex = 1;
saveFileDialog1.ShowDialog();


if (saveFileDialog1.FileName != "")
{
    gridView1.AddNewRow();
    XmlDocument document = new XmlDocument();

    XmlElement anaeleman = document.CreateElement("onbase-certificate");

    //i want to do it here
    TextWriter yaz = new StreamWriter(saveFileDialog1.FileName,true);
    yaz.Write(f2.richTextBox1.Text);
    yaz.Close();

    XmlElement alteleman = document.CreateElement("licences");
    for (int i = 0; i < Convert.ToInt32(gridView1.DataRowCount); i++)
            {

                XmlElement elemanlar = document.CreateElement("licence");

                XmlElement eleman = document.CreateElement("name");
                eleman.InnerText = "![CDATA[" + gridView1.GetRowCellValue(i, "productname").ToString() + "]";
                elemanlar.AppendChild(eleman);

                eleman = document.CreateElement("code");
                eleman.SetAttribute("sig", "1");
                eleman.InnerText = gridView1.GetRowCellValue(i, "producttype").ToString();
                elemanlar.AppendChild(eleman);

                eleman = document.CreateElement("count");
                eleman.InnerText = gridView1.GetRowCellValue(i, "count").ToString();
                eleman.SetAttribute("sig", "1");
                elemanlar.AppendChild(eleman);

                if (gridView1.GetRowCellValue(i, "pilotdate").ToString() != "")
                {
                    eleman = document.CreateElement("pilotdate");
                    eleman.InnerText = gridView1.GetRowCellValue(i, "pilotdate").ToString();
                    eleman.SetAttribute("sig", "1");
                    elemanlar.AppendChild(eleman);
                }

                alteleman.AppendChild(elemanlar);

            }
    //anaeleman.AppendChild(alteleman);

    anaeleman.AppendChild(alteleman);

    document.AppendChild(anaeleman);

    document.Save(saveFileDialog1.FileName);
}

可以使用普通的StringBuilder來代替XmlDocument。

var builder = new StringBuilder();
builder.AppendLine("<onbase-certificate>");
builder.AppendLine(f2.richTextBox1.Text);

builder.AppendLine("<licenses>");
for (int i = 0; i < Convert.ToInt32(gridView1.DataRowCount); i++)
        {

            builder.AppendLine("<license>");
            builder.AppendLine("<name>![CDATA[" + gridView1.GetRowCellValue(i, "productname").ToString() + "]</name>");

           builder.AppendLine("<code sig=\"1\">");
           builder.AppendLine(gridView1.GetRowCellValue(i, "count").ToString(););
           builder.AppendLine("</code>");

            // ...


           builder.AppendLine("</license>");

        }
builder.AppendLine("</licenses>");

builder.AppendLine("</onbase-certificate>");
File.WriteAllText(saveFileDialog1.FileName, builder.ToString());

我不確定您要做什么。 您是否要將文本從richtextbox保存到xml元素anaeleman? 如果是,您是否嘗試過此方法?

anaeleman.InnerText = f2.richTextBox1.Text

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM