使用c#查找和替换XML文件中的文本

GBh*_*GBh 6 xml c#-4.0

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

http://Server1.extranet.abc/server1webdev/rest/services/ABC/ABC_Base/MapServer
Run Code Online (Sandbox Code Playgroud)

http://Server2.extranet.abc/server1webdev/rest/services/ABC/ABC_Base/MapServer 
Run Code Online (Sandbox Code Playgroud)

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

No *_*ame 5

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

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);
Run Code Online (Sandbox Code Playgroud)

但通常如果你想在xml中更改标签的值,我可以建议一个例子,你可以在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");
Run Code Online (Sandbox Code Playgroud)