Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 替换Xml节点/元素的innertext_C#_Xml_Winforms_Xmlreader_Xmlwriter - Fatal编程技术网

C# 替换Xml节点/元素的innertext

C# 替换Xml节点/元素的innertext,c#,xml,winforms,xmlreader,xmlwriter,C#,Xml,Winforms,Xmlreader,Xmlwriter,首先,这是C。我正在为NHS的一小群大学生创建一个互联网仪表盘。 下面是一个示例xml文件,我需要在其中更改的innertext。我需要替换一个特定的元素,例如“Workshop1”。因为我们有几个研讨会,所以我不能使用通用编写器,因为它将用下面的一段代码替换XML文档中的所有信息 <?xml version="1.0" ?> <buttons> <workshop1>hello</workshop1> <u

首先,这是C。我正在为NHS的一小群大学生创建一个互联网仪表盘。 下面是一个示例xml文件,我需要在其中更改的innertext。我需要替换一个特定的元素,例如“Workshop1”。因为我们有几个研讨会,所以我不能使用通用编写器,因为它将用下面的一段代码替换XML文档中的所有信息

<?xml version="1.0" ?> 
   <buttons>
      <workshop1>hello</workshop1> 
      <url1>www.google.co.uk</url1> 

因此,为了澄清这一点,我希望我的C#程序搜索XML文档,找到元素“Workshop1”,并用文本框中的文本替换innertext。并且能够保存它,而无需将整个文档替换为一个节点。谢谢你的关注

使用
XmlDocument
和XPath可以做到这一点

XmlDocument doc = new XmlDocument();
doc.Load(reader); //Assuming reader is your XmlReader
doc.SelectSingleNode("buttons/workshop1").InnerText = "new text";
您也可以使用
doc.Save
保存文件

在上阅读有关
XmlDocument
的更多信息

编辑

要保存文档,请执行以下操作

doc.Save(@"C:\myXmFile.xml"); //This will save the changes to the file.

希望这对您有所帮助。

您不使用
XDocument
或至少不使用
XmlDocument
API有什么原因吗?如果必须处理庞大的XML文件,通常只使用
XmlReader
/
XmlWriter
。因此,为了让通用程序运行,我正在将代码组合在一起,然后当我看到它工作时,我可以更改代码以提高效率。至少通过这种方式,我可以了解丑陋和干净的做事方式之间的区别,并了解两者的优点。不过,感谢您的指导,我现在会考虑使用XMLReader/XMLWriter。我的建议是不要使用
XMLReader
/
XMLWriter
…我认为这很有效。现在唯一的问题是它不允许我保存文档。我使用的是“doc.Save”;但是出现了一个错误“只能将赋值、调用、递增、递减和新对象表达式用作语句”。这是因为我没有使用XMLWriter吗?或我在这个项目上工作了这么长时间,我可能是个白痴。如果你看上面,你可以看到它被修改了。编辑上面的代码以显示它现在正在工作,并作为未来用户的参考。多亏了阿马尔·帕萨普。当一切顺利地结合在一起时,这真是太棒了:)
doc.Save(@"C:\myXmFile.xml"); //This will save the changes to the file.