【发布时间】:2015-02-26 22:44:06
【问题描述】:
我有很多 XML 文件需要编辑。 我需要找到所有实例: 示例
<Btn>
<sText>Hold</sText>
并在其前添加一个字段
<Btn>//star of new fields
<sText>Tools</sText>
*rest of fields*
</Btn> //end of added fields
<Btn> //start of original search
<sText>Hold</sText>
我已经阅读过在 XML 上使用正则表达式是不可取的。对于这样的事情,实现多个文件的大型一次性操作的最佳方法是什么?
我尝试了正则表达式,但没有运气,只是开始搜索所需的字段。
/<Btn>(.*?(\n))+.*?<sText>Hold</sText>/im
目前使用notepad++、括号等编辑器来编辑文件。任何有关进行大型一次性操作的建议将不胜感激。在 GUI 中手动更改数百个配置是不可取的。只是寻找另一种方法来节省理智。
【问题讨论】:
-
I have read the using regex on XML is not advisable好吗?所以编写一个使用 xml 解析器的脚本,然后在必要的文件上运行该脚本。 -
在 BAT 文件中执行此操作可能不是一个好的选择。你知道任何其他语言,例如C#?如果是这样,请添加您喜欢的语言并删除
batch-file标记。 -
查看 UNIX/LINUX 工具,如 VIM 和 SED 进行此类操作。它们具有更强大的正则表达式功能。
-
@PieterGeerkens:想法是根本不使用正则表达式来解析 XML!
-
@JohnSaunders:作为一个在我的职业生涯中推出了近 20 个 DSL 解析器的人,实现了从递归下降到 LEX/YACC 语法的任何东西,我可以说我偶尔也会使用 REGEX,因为完整的解析器将使用大锤打苍蝇。关键在于使用正确的工具来完成您面前的工作。