XML npp 搜索和替换

XML npp 搜索和替换

请记住,我对 xml 和 npp 还不熟悉。

我有一个包含几千条记录的大型 xml 文件,我需要更改行才能使其在其他程序中工作。

我已经完成了大部分格式的转换,但现在遇到了一个问题。

我的 xml 现在是什么样子的:

</Value>
<name>C01</name>
<description>TEXT WITH VARYING NUBMER OF CHARACTERS FOR EACH LINE</Value>
</DPR>

我想要的是:

<DPR>
<name>C01</name>
<description>TEXT WITH VARYING NUBMER OF CHARACTERS FOR EACH LINE</description>
</DPR>

问题</Value>在于,根据它是否在独立的字符串中,用两种不同的东西进行替换。我遇到的第二个问题是替换一行中的部分内容并保留其余内容 - 当我想要保留的部分在每一行中都有不同的字符数时。

非常感谢所有帮助!

答案1

当该行单独存在时,</Value用替换:</DPR>

找什么:^ *</Value>

用。。。来代替:</DPR>

搜索方式:正则表达式

</Value>此后,除了与字符串一起出现的实例外,不应再有其他实例,因此替换它们应该很简单。但为了完整性...

[somestringhere]</Value当->[somestringhere]</description>单独存在于该行时,替换它:

找什么:^(<description>.+?)</Value>

用。。。来代替:$1</description>

搜索方式:正则表达式

上面的^代表行的开始,*表示空格可能存在也可能不存在,.+?表示直到之后的字符串第一次出现之前的任何字符(有关正则表达式的更多信息请参见此处),$1替换字符串中的部分将被源数据中括号内匹配的部分所替换。

答案2

最简单的方法是使用 Perl 中的正则表达式:

perl -i -p -e 's/</Value>\n<name>/<DPR>\n<name>/' yourfile.txt

相关内容