如何使用记事本替换xml文件中的第n个元素+;?
示例XML如何使用记事本替换xml文件中的第n个元素+;?,xml,macros,automation,notepad++,Xml,Macros,Automation,Notepad++,示例XML <animal> <dog>rex</dog> <dog>rex</dog> <dog>rex</dog> </animal> 雷克斯 雷克斯 雷克斯 使用Notpad++可以替换第三个dog元素的值。所以本质上我想找到动物的第三个孩子并替换这个值 我觉得这可能是不可能的,我必须写一些脚本来实现这一点。但无论如何,这总是值得一问 如果您感兴趣,请提供背景详细信
<animal>
<dog>rex</dog>
<dog>rex</dog>
<dog>rex</dog>
</animal>
雷克斯
雷克斯
雷克斯
使用Notpad++可以替换第三个dog元素的值。所以本质上我想找到动物的第三个孩子并替换这个值
我觉得这可能是不可能的,我必须写一些脚本来实现这一点。但无论如何,这总是值得一问
如果您感兴趣,请提供背景详细信息。
我有数百个XML文档,其中必须替换元素的第三、第四和第五个子元素的值。我正在寻找最简单的方法。办公室里的许多人都使用notepad++,因此如果有一个使用notepad++的解决方案,那将是理想的 记事本++的特点就是它 编辑2012年11月8日:从记事本++6.0开始,上述内容不再适用。但它适用于5.x 对于文本替换,它有普通模式、扩展模式和正则表达式模式,这些模式缺少一些东西。然而,最后两种方法可以结合起来产生良好的效果(事实上,有时将处理过程分成几个部分更为清晰) 解决方案不明确但有效: 启动
搜索->在文件中查找(CTRL-SHIFT-F),指定目录和筛选器,然后:
- 去除任何空格(空格、制表符缩进)和换行符-使用搜索模式=扩展的替换,连续:查找内容=
\r\n
,\t
,
,在每种情况下替换为=
。在这之后,就有了一个单行程序,这是N++在regexp处理中所喜欢的
- 现在在搜索模式=正则表达式中执行操作:
- 查找内容=
(.*)(.*)(.*)(.*)(.*)(.*)(.*)
- 替换为=
\1\2\3aaa\4bbb\5ccc
- TextFX->TextFX HTML Tidy->Tidy:Reindent XML以恢复XML格式(可能在空格数等方面略有不同)
在步骤1和2中,单击“在文件中替换”以执行
字符串\1
,…,\5
表示连续节点的值(regexp中括号中的值)。将其放置或保留,并添加任何您想要的任意文本。
(.*?
是一个正则表达式,它匹配任何字符,并且是ungreedin(?
代表ungreediness),因此它将只匹配尽可能短的片段(否则它可能会找到比文件中更少的
)