我正在使用来自cellux的一个很棒的提示,在这个question的现有元素下添加一个新元素(带有属性和子元素),然后遇到格式化挑战。
从文件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”运行它,但必须有更好的方法。