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コンテンツでエラーが発生します。私はシェルスクリプトを初めて使用するため、ヘルプが提供されます

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 に答える