【发布时间】:2020-05-15 04:19:00
【问题描述】:
所以我已经有一个 XML 文件,其中包含很多元素,但其中没有任何价值。现在我想在已经存在的 XML 文件中插入一些值。 所以我创建了一个 XmlWriter 和一个 XmlReader。 之后,我开始编写 XMLDocument 并从阅读器中复制所有内容,如下所示:
xmlWriter.WriteStartDocument();
xmlWriter.WriteNode(reader, true);
如果我就这样离开它(当然最后是xmlWriter.WriteEndDocument(); 和xmlWriter.Close();),那么我将拥有一个新的 XML 文件,它与我的默认文件完全相同。
我现在的问题是: 是否可以添加一些值然后保护这个新的 XML 文件?所以基本上是默认值 + 值的副本。
如果您想知道,我所说的值是什么意思,我指的是“TestUser”,如下所示:
<User>TestUser</User>
我在互联网上做了一些研究如何做到这一点,但遗憾的是我找不到任何东西。
感谢您的帮助!
编辑:
我的 XML 看起来像这样(当然更大,这只是一个小例子):
<users>
<user></user>
<user></user>
</users>
我希望这个 XML 被复制一些附加值,例如:
<users>
<user>TestUser1</user>
<user>TestUser2</user>
</users>
【问题讨论】:
-
除非您正在处理大量 XML 文档 (>100MB),否则使用
XDocument和相关文件要容易得多。 -
微软有很好的documentation。使用序列化器读取模板,填写值,然后再次使用序列化器将值写入文件
-
@Mitch 你能给我看一个例子吗?我现在已经试过了,我又在同一点上。我得到了 XML 的“副本”,但我不知道如何将这些值添加到这些元素中。
-
c-sharpcorner.com/article/xml-manipulation-in-c-sharp 看起来相当完整,但使用 XElement 或 XDocument 进行的一些搜索应该可以阐明。
-
Mitch 你能给我看一个例子吗? - 为此,我们需要一个完整的 XML 示例——即minimal reproducible example——显示你卡在哪里,我们可以粘贴到控制台应用程序或fiddle 并运行。
标签: c# xml xmlreader xmlwriter