添加、删除和操作数据

本文关键字:操作数 数据 操作 删除 添加 | 更新日期: 2023-09-27 18:16:33

我在与c#集成xml时遇到了麻烦,使用UI,我可以以我需要的方式创建文档,包括保存/加载/显示功能,我缺乏的是重新加载和现有xml文件"Books.xml"的能力,以添加或删除条目并以相同的名称保存它。我的代码是:

    XmlTextWriter Writer = new XmlTextWriter ("NewDoc.xml", Encoding.UTF8);
    Writer.WriteStartDocument();
    Writer.WriteStartElement("SAVED");
    Writer.WriteStartElement("TITLE");
    Writer.WriteString(textBox2.Text);
    Writer.WriteEndElement();//TITLE
    foreach (string item in listBox1.Items)
    {
        Writer.WriteStartElement("ITEM");
        Writer.WriteString(item);
        Writer.WriteEndElement();//ITEM
    }
    Writer.WriteEndElement();//SAVED
    Writer.WriteEndDocument();
    Writer.Close();

我知道我可能不是很清楚,但我是一个完全的新手,我才做了3个月。

<?xml version="1.0" encoding="utf-8"?>
<Books>
  <ID1>
    <TITLE>Harry Potter
</TITLE>
    <AUTHOR>JK Rowling
</AUTHOR>
    <PUBLISHED>1995 
</PUBLISHED>
    <PUBLISHERS>Bloomberg,
</PUBLISHERS>
  </ID1>
  <ID2>
    <TITLE>Disc World
</TITLE>
    <AUTHOR>Terry Pratchet
</AUTHOR>
    <PUBLISHED>1990
</PUBLISHED>
    <PUBLISHERS>ETC
</PUBLISHERS>
  </ID2>
  <ID3>
    <TITLE>IT
</TITLE>
    <AUTHOR>Stephen King
</AUTHOR>
    <PUBLISHED>1999
</PUBLISHED>
    <PUBLISHERS>ETC
</PUBLISHERS>
  </ID3>
</Books>

添加、删除和操作数据

我建议查看XDocument类,它使处理XML文件变得容易得多。如果没有XML,很难给出一个示例,但是看看下面的答案,了解如何实现:

最简单的方法添加xml节点与一堆子节点在。net ?

如果你发布一些示例XML,我们可以为你想出一些代码。基本思路是先使用XDocument.Load(filename),然后使用XElement.Add(...)来插入新元素。

这段代码将从一个文件加载XML,添加一些元素,然后保存到另一个文件中。它可能不是您想要添加的XML,但应该足够了。如果需要,还可以保存回原始文件(我保存到foo2.xml,这样就不会覆盖测试文件)。

你可以看到我替换了listbox1。项与字符串数组——你应该能够交换这些行,并得到你想要的。

    private static void Main()
    {
        var xdoc = XDocument.Load(@"C:'temp'foo.xml");
        var itemsToAdd = new[] { "item1", "item2", "item3" };
        // var itemsToAdd = listBox1.Items;
        xdoc.Root.Add(
            new XElement("SAVED",
                new XElement("TITLE",
                    itemsToAdd.Select(e => new XElement(e)))));
        xdoc.Save(@"c:'temp'foo2.xml");
    }

c#是一种面向对象的语言,你会发现把你的问题分解成更小的部分(类、属性和方法)很有帮助。

对于我所回答的与你类似的问题,我建议你参考两个答案来解释这种方法。

https://stackoverflow.com/a/5609126/353147

第二个可能是你学c#才3个月就无法理解的,但是如果你想看的话,可以看看:

https://stackoverflow.com/a/6802442/353147

类的方法是方便的,易于操作值和读取/写入文件快速。

我将为您的方法创建两个类(Books和Book)。Books类将对文件进行读/写操作,并包含图书列表和从列表中添加/减去图书的功能。

我看到的唯一困难是每本书有一个不同的标签名称,但这不是一个巨大的障碍,只是更困难。

如果您的book标签可以从<ID1>更改为<Book ID="1">,这将使它更简单,那么您可以快速操作book标签列表(因为它已经在Linq中实现)。

我现在没有时间写一个完整的例子,但如果你觉得这两个链接很有趣,想看一个例子,我可以稍后写一个。在这里留下你的评论