Я использовал отличный совет от Cellux, чтобы добавить новый элемент (с атрибутами и подэлементами) под существующий элемент в этом вопрос и столкнулся с проблемой форматирования.
Начиная с файла example.xml:
<processes>
<process id="test"/>
</processes>
Если я использую метод Cellux для выполнения нескольких с одним вызовом xml с несколькими действиями...
xml ed -L \
-s "/processes" -t elem -n processTMP -v "" \
-i "/processes/processTMP" -t attr -n id -v "test2" \
-s "/processes/processTMP" -t elem -n subproc -v "s2" \
-r "/processes/processTMP" -v "process" \
example.xml
результирующий файл содержит одну новую строку XML.
<processes>
<process id="test"/>
<process id="test2"><subproc>s2</subproc></process>
</processes>
Если я делаю несколько вызовов xml с каждым в отдельном вызове...
xml ed -L -s "/processes" -t elem -n processTMP -v "" example.xml
xml ed -L -i "/processes/processTMP" -t attr -n id -v "test2" example.xml
xml ed -L -s "/processes/processTMP" -t elem -n subproc -v "s2" example.xml
xml ed -L -r "/processes/processTMP" -v "process" example.xml
Я получаю хорошо отформатированный (с отступом) XML.
<processes>
<process id="test"/>
<process id="test2">
<subproc>s2</subproc>
</process>
</processes>
Два файла синтаксически идентичны, но я хотел бы, чтобы XML был как можно более чистым.
Кто-нибудь знает чистый способ сделать один вызов xml и при этом получить форматирование? Я знаю, что мог бы запустить его через "xml fo" в конце, но должен быть лучший способ.
xml --version
? - person npostavs   schedule 30.01.2014