使用C#查找和替换XML文件中的文本 [英] Find and Replace text in XML file using c#

查看:595
本文介绍了使用C#查找和替换XML文件中的文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用c#查找和替换xml文件中的文本。我想要的是在整个文件的url链接中更改服务器名称。

I am trying to find and replace text in an xml file using c#. What I want is to change server name in the url link throughout the file.

http://Server1.extranet.abc/server1webdev/rest/services/ABC/ABC_Base/MapServer

http://Server2.extranet.abc/server1webdev/rest/services/ABC/ABC_Base/MapServer 

我尝试使用
System.xml.linq(XDocument.load(xmlpath))
,但这只是将整个xml文件作为一个字符串行。有没有办法替换文本?请注意,网址不在特定的节点中。它们在整个文件中都是随机的。我可以通过文件的查找和替换来手动执行此操作,有没有办法以编程方式执行此操作?

I tried using System.xml.linq (XDocument.load(xmlpath)) but it simply gives me the whole xml file as one line of string. Is there a way I can replace the text?Note that the url's are not in specific nodes., they are random throughout file. I am able to do this manually through the file's find and replace, is there a way of doing this programmatically?

推荐答案

将整个xml文件作为字符串,您可以通过执行以下操作替换所需的内容:

if you have the entire xml file as string you can replace what you need by doing:

string oldStr = @"http://Server1.extranet.abc/server1webdev/rest/services/ABC/ABC_Base/MapServer";
string newStr = @"http://Server2.extranet.abc/server1webdev/rest/services/ABC/ABC_Base/MapServer ";

doc.Replace(oldStr, newStr);

但是通常如果您想在xml中更改标记的值,我可以举一个例子,您放在XML中使用它:

but normally if you want to change a value of a tag in xml i can suggest an example and you put it to use in your xml:

     XDocument doc = XDocument.Load("D:\\tst.xml");
     foreach (XElement cell in doc.Element("Actions").Elements("Action"))
     {
        if (cell.Element("ActionDate").Value == oldStr)
        {
           cell.Element("ActionDate").Value = newStr;
        }
     } 

     doc.Save("D:\\tst.xml");

这篇关于使用C#查找和替换XML文件中的文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆