Настройка XML-файлов конфигурации из скрипта - PullRequest
0 голосов
/ 25 ноября 2008

Я работаю над автоматизацией конфигурации нескольких серверов 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. Какой самый простой способ сделать это из скрипта?

Ответы [ 3 ]

3 голосов
/ 18 февраля 2009

Вы найдете больше ответов на мой предыдущий вопрос . xmlstar , кажется, самый популярный ответ.

1 голос
/ 25 ноября 2008

Обычно я делаю это путем написания таблицы стилей XSL и вызова SAXON из сценария.

0 голосов
/ 25 ноября 2008

NAnt, двоюродный брат .NET Ant, имеет задачи XmlPeek и XmlPoke , которые я очень хорошо использовал при редактировании файлов конфигурации WCF, которые довольно сложны. Если вы можете найти похожие задачи для Ant, значит, у вас есть победитель.

В качестве альтернативы, другой подход может состоять в том, чтобы иметь "шаблонную" версию файла конфигурации, которая содержит% заполнителей%, подходящих для замены одним из более классических инструментов обработки текста.

Мысль - у Ant есть идея цепочки фильтров , которую можно использовать для преобразования файла во время копирования - NAnt имеет ту же концепцию, и я недавно использовал ее для улучшения конфигурации файлов развертывания .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...