我有一个XML,其中我有许多包含路径的节点,如果找到某些信息,我可能需要更改一些路径。
例如,可能存在这样的节点:
<File name="dev\Desktop\Working\Test\English\1312\myopic.dll">
我需要找到路径中包含4位数字的所有路径(如上面的“1312”),并将其更改为%NUM%。
最好的方法是什么?我的第一个想法是使用RegEx,但从一些搜索来看,这似乎是一个坏主意?
也许LINQ to XML(我对此有一些经验不足)?
答案 0 :(得分:1)
它是XML,所以为什么不使用XElement。
另一方面,如果这是一次性的事情,并且您想要知道模式不会出现在XML的错误部分中,那么正则表达式实现起来要快得多。
newFileContents = Regex.Replace(
fileContents,
@"(?<=dev\\Desktop\\Working\\Test\\English\\)\d+",
"%num%);
答案 1 :(得分:1)
我认为Regex在这里是最有效的解决方案,这一点都不错。
string path = @""<File name=""dev\Desktop\Working\Test\English\1312\myopic.dll"">";
string pattern = @"\d\d\d\d";
Regex regex = new Regex(pattern);
string replacement = "%NUM%";
string result = regex.Replace(input, replacement);
//result is: <File name="dev\Desktop\Working\Test\English\%NUM%\myopic.dll">