我正在致力于自动化几个JBoss服务器的配置,这涉及到编辑大量的XML文件。
我想尽可能多地编写所有这些更改的脚本。但是“标准”工具(sed、grep等)不能很好地处理XML。在不需要求助于高级语言的情况下,我如何编写脚本,例如在某个文件中的给定XML元素之后插入给定的XML截取器?
例如,假设我的jboss-log4j.xml如下所示
<!-- ====================== -->
<!-- More Appender examples -->
<!-- ====================== -->
<!-- Buffer events and log them asynchronously -->
<appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<appender-ref ref="FILE"/>
<!--
<appender-ref ref="CONSOLE"/>
<appender-ref ref="SMTP"/>
-->
</appender>并且我想添加一个新的appender ref元素。从脚本中执行此操作的最简单方法是什么?
发布于 2009-02-18 18:17:15
你会在我的previous question中找到更多答案。xmlstar似乎是最受欢迎的答案。
发布于 2008-11-25 07:54:39
通常,我会通过编写XSL样式表并从脚本调用SAXON来实现这一点。
发布于 2008-11-25 09:40:56
NAnt是Ant的.NET表亲,它有XmlPeek和XmlPoke任务,在编辑相当复杂的配置文件时,我已经习惯了它们非常好的效果。如果您能为Ant找到类似的任务,那么您可能会有一个赢家。
或者,另一种方法可能是有一个“模板”版本的配置文件,其中包含%PLACEHOLDER%,适用于替换为更经典的文本处理工具之一。
that Ant具有filter chain的概念,可用于在复制时转换文件- NAnt具有相同的概念,我最近将其用于配置部署文件,效果很好。
https://stackoverflow.com/questions/316600
复制相似问题