У меня есть несколько приложений, которые хранят свои файлы конфигурации в формате XML. Для обычного приложения, использующего текстовую конфигурацию, я мог бы достаточно легко обновить значение с помощью perl, sed, awk или любого из миллиона инструментов. Я ищу что-то подобное для XML, что позволит мне легко и надежно выполнять такие операции, как: обновление значения, добавление узла или его удаление.
Регулярный анализ текста может показаться слишком рискованным, поскольку у меня нет реальных гарантий относительно физического формата файла.
XML, анализирующий в MS, Powershell легче, чем какой-либо механизм парсинга, который я видел на любом другом языке или среде, с которой я лично встретился.
Учитывая некоторый XML-файл (test.xml):
<root>
<one>I like applesauce</one>
<two>You sure bet I do!</two>
</root>
Можно легко получить доступ, изменить и добавить узлы, значения и атрибуты XML-файла из Powershell.
# load XML file into local variable and cast as XML type.
$doc = [xml](Get-Content ./test.xml)
$doc.root.one #echoes "I like applesauce"
$doc.root.one = "Who doesn't like applesauce?" #replace inner text of <one> node
# create new node...
$newNode = $doc.CreateElement("three")
$newNode.set_InnerText("And don't you forget it!")
# ...and position it in the hierarchy
$doc.root.AppendChild($newNode)
# write results to disk
$doc.save("./testNew.xml")
Заканчивание XML в файле testNew.xml:
<root>
<one>Who doesn't like applesauce?</one>
<two>You sure bet I do!</two>
<three>And don't you forget it!</three>
</root>
Невероятно легкий!Приятного отдыха.
Powershell является новой оболочкой Microsoft, которая поставлется с Windows Server 2008 и Windows 7 и является бесплатной загрузкой для XP/Vista/сервера 2003 (возможно, другие).
Некоторые полезные ссылки:
Генерация XML из других источников
Добавление элементов к XML:
Демонстрационный 1, блог MSDN PowerShell
Демонстрационные 2, ПК Pro (Великобритания)
Если я понимаю вопрос правильно, Вы ищете другой формат устройства хранения данных конфигурационного файла, который сродни XML. Одни из лучших преимуществ XML, хотя факт, он дает Вам формат структурированных данных. Если Вы нарушаете DTD или "обрабатываете Вас по шаблону", имеют плохо сформированный файл конфигурации XML. В прошлом для некоторых моих собственных усилий по разработке, сценариев, программ и приложений, я использовал отформатированные файлы INI. В то время как INI's легко анализируется и может поддерживать подобный, добавляют, удаляют, обновления, я одобряю XML b/c, это: