在bash中生成XML,需要一些有效的想法
我需要在bash中生成XML文件(尽管在C/C++/UNIX上工作了一段时间,但我还是bash /脚本语言的新手)。现在,我生成这样的事情,这是非常平坦的在bash中生成XML,需要一些有效的想法
st='<'
et='>'
sl='/'
-------------------
stag() {
text=$st$1$et
echo $text >> output_file
}
--------------------
etag() {
text=$sl$1
stag $text
}
--------------------
attr() {
text=$1
echo $text >> output_file
}
--------------------
#--Function Call
stag "tag"
attr "xml"
etag "tag"
--------------------
#--output
<tag>xml</tag>
在这方面,我觉得有很多的机会,使错误的,并在C++编码了这么久之后,我觉得应该有一个更好的结构化的方式代码....任何想法是赞赏....或任何材料,你认为,我应该先学习,PLZ张贴在这里....谢谢...
您正在寻找类似的东西,如xmlstarlet。 depyx子命令允许您将PYX markup转换为XML。
这可能足以满足您的原型设计目的。否则,您可能需要在Ruby,Python或Perl中查看更全面的XML库。
是的。另请参阅http://*.com/questions/9898939/handling-long-edit-lists-in-xmlstarlet(我在从shell脚本构建大型XML文档时使用过),以及http://*.com/。 a/9882528/14122作为使用示例。 –
它通常是容易只是引用你的字符串,而不必使用特殊的变量为特殊字符,例如,而不是
text=$st$1$et
echo $text
只使用
echo "<$1>"
或 的printf“<%S >“$ 1
至于结构,bash确实有数组,你可能可以使用属性,但唯一的方法来通过它们功能是通过名称,然后你必须跳过箍环得到的值:
a=(foo bar baz)
f() {
eval printf "\${$1[1]}"
}
f a
=> bar
在Bash中这样做听起来像一个非常unforgiving的任务。我强烈建议使用具有XML库的语言,例如Python或Ruby。 –
另外,问题是什么? –
^嘿oli,很高兴再次见到你......我只是原型设计,我可能需要使用bash进行完整的项目,因为一些遗留原因....不确定但是...... – howtechstuffworks