【发布时间】:2012-02-07 10:14:15
【问题描述】:
首先这是 C#。我正在为 NHS 中的一小部分同事创建一个互联网仪表板。 下面是一个示例 xml 文件,我需要在其中更改其内部文本。我需要替换特定元素,例如“Workshop1”。因为我们有一些研讨会,所以我不能使用通用编写器,因为它将用下面的这一位代码替换 XML 文档上的所有信息。
<?xml version="1.0" ?>
<buttons>
<workshop1>hello</workshop1>
<url1>www.google.co.uk</url1>
我正在使用 switch case 来选择一个特定的研讨会,您可以在其中更改名称并添加研讨会的 URL,然后使用下面的代码将替换整个文档。
public void XMLW()
{
XmlTextReader reader = new XmlTextReader("C:\\myXmFile.xml");
XmlDocument doc = new XmlDocument();
switch (comboBox1.Text)
{
case "button1":
doc.Load(reader); //Assuming reader is your XmlReader
doc.SelectSingleNode("buttons/workshop1").InnerText = textBox1.Text;
reader.Close();
doc.Save(@"C:\myXmFile.xml");
break;
}
}
所以为了澄清一下,我希望我的 C# 程序在 XML 文档中搜索找到元素“Workshop1”并将内部文本替换为来自文本框的文本。并且能够保存它而不用一个节点替换整个文档。感谢您的关注。
【问题讨论】:
-
您是否有理由不使用
XDocument或至少不使用XmlDocumentAPI?如果您必须处理 huge XML 文件,通常只使用XmlReader/XmlWriter。 -
好吧,我是 C# 的新手。因此,为了让通用程序运行,我将代码组合在一起,然后当我看到它工作时,我可以更改代码以使其更高效。至少通过这种方式,我可以了解丑陋和干净的做事方式之间的区别,并了解两者的优势。不过感谢您的指导,我现在会考虑使用 XMLReader/XMLWriter。
-
我的建议是不要使用
XmlReader/XmlWriter...
标签: c# xml winforms xmlreader xmlwriter