gpt4 book ai didi

c# - 用 C# 编写 XML

转载 作者:数据小太阳 更新时间:2023-10-29 02:15:02 24 4
gpt4 key购买 nike

我的 C# 有点生疏,我以前从未用它编写过 XML。如果我尝试写入除元素以外的任何内容,我将无法将 XML 写入文件。这是我的测试代码:

var guiPath = txtGuiPath.Text;
MessageBox.Show("Dumping File: " + guiPath);

try
{
var writer = new XmlTextWriter("client_settings.xml", null);
writer.WriteStartDocument();
writer.WriteComment("Config generated on 01/01/01");
writer.WriteStartElement("Config");
writer.WriteStartElement("GuiPath");
writer.WriteString(guiPath);
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();
} catch (Exception ex) {
MessageBox.Show(ex.Message);
}
MessageBox.Show("Finished Dumping");

如果 guiPath 为空,我会得到以下 XML:

<?xml version="1.0"?>
<!--Config generated on 01/01/01-->
<Config>
<GuiPath />
</Config>

但如果 guiPath 中有任何文本,则不会向文件写入任何内容。我什至可以删除 client_settings.xml 文件并反复触发此代码,除非 guiPath 为空,否则永远不会生成 XML 文件。将“这是一个测试”之类的内容传递给 WriteString() 也可以。

更新

由于我正在尝试写出系统路径,所以这似乎是问题所在。如果我去掉所有反斜杠,它会正确地写入结果字符串,但如果我将它传递给 WriteString 或 WriteCData,XML 将根本不会写入。

更新 2

原来我遇到这么多问题的原因是因为 XML 文件是在 guiPath 设置的任何路径中生成的,而不是在应用程序运行的目录中(所以对我来说它看起来不是'根本不会生成)。因此,如果我将 guiPath 设置为“C:\.为什么,我不知道。我开始传递 Application.StartupPath 并将文件名附加到它,现在效果很好。

感谢大家的帮助!

最佳答案

您可能想要检查 System.Xml.Linq 中的 API。这是一种更灵活的生成和编写 XML 的方法。编写文档可能大致如下所示:

XDocument document = new XDocument();
document.Add(new XComment("Config generated on 01/01/01"));
document.Add(new XElement("Config", new XElement("GuiPath", guiPath)));

// var xmlWriter = new XmlTextWriter("client_settings.xml", null);
// document.WriteTo(xmlWriter);

// thanks to Barry Kelly for pointing out XDocument.Save()
document.Save("client_settings.xml");

关于c# - 用 C# 编写 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/489173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com