我有一个 xml
<Data>
<employee>
<name>emp1</name>
<id>1</id>
</employee>
</Data>
假设我有一个模板,可以在其中更改值并添加到以前的 xml
<employee>
<name>##name##</name>
<id>##empid##</id>
<employee>
我用##name##和##empid##替换原始值并放入原始xml 名称=emp2 开斋节=2 所以在那之后它一定是
<Data>
<employee>
<name>emp1</name>
<id>1</id>
</employee>
<employee>
<name>emp2</name>
<id>2</id>
</employee>
</Data>
我尝试让行号插入标签
line=$(cat data.xml | grep -n '</Data>' | grep -o '^[0-9]*')
和
尝试使用将文本放入原始 xml
sed $line\ i\<text to be insert in original xml>
但它给出了 xml 内容的一些错误,将给予帮助,因为我是 shell 脚本的新手
最佳答案
您可以使用 xmlstarlet
更新您的 template.xml
(格式错误)
$ cat template.xml
<employee>
<name>##name##</name>
<id>##empid##</id>
</employee>
$ xmlstarlet ed -u //name -v emp2 -u //id -v 2 template.xml
<?xml version="1.0"?>
<employee>
<name>emp2</name>
<id>2</id>
</employee>
关于bash - shell脚本将标签插入到xml中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11328536/