【问题标题】:Adjusting XML config files from a script从脚本调整 XML 配置文件
【发布时间】:2008-11-25 07:41:20
【问题描述】:

我正致力于自动配置多个 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 元素。从脚本中最简单的方法是什么?

【问题讨论】:

    标签: xml configuration scripting


    【解决方案1】:

    您会在我的previous question 中找到更多答案。 xmlstar 似乎是最受欢迎的答案。

    【讨论】:

      【解决方案2】:

      通常我会通过编写 XSL 样式表并从脚本中调用 SAXON 来做到这一点。

      【讨论】:

        【解决方案3】:

        NAnt 是 Ant 的 .NET 表亲,有 XmlPeekXmlPoke 任务,我在编辑非常复杂的 WCF 配置文件时效果非常好。如果您可以为 Ant 找到类似的任务,那么您可能会有赢家。

        或者,另一种方法可能是使用包含 %placeholders% 的配置文件的“模板”版本,适合替换为更经典的文本处理工具之一。

        一个想法 - Ant 有一个 filter chain 的想法,它可用于在复制时转换文件 - NAnt 具有相同的概念,我最近使用它来很好地配置部署文件。

        【讨论】:

          猜你喜欢
          • 2012-01-09
          • 1970-01-01
          • 1970-01-01
          • 2011-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-06
          • 1970-01-01
          相关资源
          最近更新 更多