2

我有一个xml

<Data>  

<employee>
  <name>emp1</name>
  <id>1</id>
</employee>

</Data>

假设我有模板,我在其中更改值并添加到以前的 xml

<employee>
 <name>##name##</name> 
 <id>##empid##</id>
<employee>

我用 ##name## 和 ##empid## 替换原始值并放入原始 xml name=emp2 eid=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 脚本的新手

4

1 回答 1

2

您可以使用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>
于 2012-07-04T17:02:02.003 回答