繁体   English   中英

C# 中的文本框和 Xml

[英]Text boxes and Xml in C#

我刚开始使用 VS2010 和 C#。

我正在尝试创建一个应用程序,它从两个文本框中获取值并将其添加到现有的 xml 文件中。

例如。

Text Box 1       Text Box 2
----------       ----------
A                B
C                D
E                F

我希望得到的 xml 文件是这样的。

<root>
 <element>
 <Entry1>A</Entry1>
 <Entry2>B</Entry2>
 </element>
</root>

等等...

这可以使用 C# 来完成吗?

我无法交替添加条目,即 Entry1 应包含 Text Box 1 line #1 和 Entry2 Text Box 2 line #1。

任何帮助,将不胜感激。

谢谢

您需要根据new line拆分从文本框中检索到的字符串,如下所示:

string[] lines = theText.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);

为每个文本框拆分值后,您可以使用System.xml.linq.xdocument class并循环遍历上面检索到的值。

像这样的东西:

XDocument srcTree = new XDocument(new XElement("Root",
    new XElement("entry1", "textbox value1")))

您可以使用 linq 查询检索 xml 文档,或使用XDocumentSave方法将其保存在 xml 文件中

下面的代码将为您提供来自文本框中的一串XML数据:

private string createXmlTags(TextBox textBox1, TextBox textBox2)
    {
        string strXml = string.Empty;
        string[] text1Val = textBox1.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
        string[] text2Val = textBox2.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
        int count = 1;
        IList<XElement> testt = new List<XElement>();

        for (int i = 0; i < text1Val.Count(); i++)
        {
            testt.Add(new XElement("Entry" + count, text1Val[i]));
            while (!String.IsNullOrEmpty(text2Val[i]))
            {
                count = count + 1;
                testt.Add(new XElement("Entry"+count,text2Val[i]));
                break;
            }
            count = count + 1;
        }
        foreach (var xElement in testt)
        {
            strXml += xElement.ToString();
        }
        return strXml;
    }

然后,您可以将代码插入现有的 xml 文档。 关注: 如何在 C# 中构建 XML? 以及如何更改 XML 属性

在这里阅读: XDocument 或 XmlDocument

我不会从那里复制代码。 创建 XML 文档时您需要了解的所有基础知识都在此处得到了很好的解释。

有两种选择,我个人会用XDocument go。

我知道这个答案中没有代码,但是由于您没有尝试过任何东西,甚至没有明显地搜索 Google(相信我,您会找到它),我宁愿为您指出正确的方向,而不是“给您鱼” .

暂无
暂无

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

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