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

相關內容