обновить XML из командной строки [windows]

У меня есть несколько приложений, которые хранят свои файлы конфигурации в формате XML. Для обычного приложения, использующего текстовую конфигурацию, я мог бы достаточно легко обновить значение с помощью perl, sed, awk или любого из миллиона инструментов. Я ищу что-то подобное для XML, что позволит мне легко и надежно выполнять такие операции, как: обновление значения, добавление узла или его удаление.

Регулярный анализ текста может показаться слишком рискованным, поскольку у меня нет реальных гарантий относительно физического формата файла.

5
задан 17 June 2009 в 05:29
2 ответа

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 (Великобритания)

10
ответ дан 3 December 2019 в 01:12

Если я понимаю вопрос правильно, Вы ищете другой формат устройства хранения данных конфигурационного файла, который сродни XML. Одни из лучших преимуществ XML, хотя факт, он дает Вам формат структурированных данных. Если Вы нарушаете DTD или "обрабатываете Вас по шаблону", имеют плохо сформированный файл конфигурации XML. В прошлом для некоторых моих собственных усилий по разработке, сценариев, программ и приложений, я использовал отформатированные файлы INI. В то время как INI's легко анализируется и может поддерживать подобный, добавляют, удаляют, обновления, я одобряю XML b/c, это:

  1. широко используемый
  2. Легко проанализированный с XML Perl:: LibXML
  3. Предлагает большую гибкость, чем файлы INI
  4. Лучшее решение сохранить твердые форматы и структуры из программ
0
ответ дан 3 December 2019 в 01:12
  • 1
    Я предполагаю I didn' t вполне понимают вопрос правильно. Теперь я делаю; я предпочитаю Perl PowerShell по причинам мобильности для других платформ. –  netlinxman 17 June 2009 в 06:48

Теги

Похожие вопросы