Sorry for the long/weird title but I'm stuck on a problem I have. I have this XML file:
</member>
<member>
<name>TransactionID</name>
<value><string>123456789123456</string></value>
</member>
<member>
<name>Number</name>
<value><string>765101293</string></value>
</member>
There, I have to replace the "765101293" with another value from another file, file2:
765003448
765885388
764034143
784478101
762568592
769765134
767200702
769550613
784914007
762333840
So, the XML file will change at each new string from file2. I am not sure how to do this. I am thinking of first processing file2 with awk and then a pipe feeding into sed:
Code:
#! /bin/bash -f
var=`awk -F,"\n" '{print $0}' "$1"`
sed -i "/7[0-9]{8}/c\$var/" "$2"
So, I would like to update my XML file (Update.xml) with the data from file2. For the first line of file2, I will have to update the existing XML: instead of "765101293" i'll put the first line of file2 > 765003448. Then I'll move the xml somewhere else, and then I'll pass to the next line on file2. Repeat the process for all lines of file2. The two variables $1 and $2 I used when I run my script like this: ./script.sh file2 Update.xml.
Could anyone help me out?
EDIT:
Here is my full xml file:
<methodCall>
<methodName>UpdateOffer</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>offerID</name>
<value><i4>19</i4></value>
</member>
<member>
<name>startDate</name>
<value><dateTime.iso8601>20151028T14:11:00+0200</dateTime.iso8601></value>
</member>
<member>
<name>offerType</name>
<value><i4>0</i4></value>
</member>
<member>
<name>originHostName</name>
<value><string>TEST</string></value>
</member>
<member>
<name>originNodeType</name>
<value><string>Prepaid</string></value>
</member>
<member>
<name>originOperatorID</name>
<value><string>operator</string></value>
</member>
<member><name>originTimeStamp</name>
<value><dateTime.iso8601>20151028T14:16:36+0200</dateTime.iso8601></value>
</member>
<member>
<name>originTransactionID</name>
<value><string>123456789123456</string></value>
</member>
<member>
<name>subscriberNumber</name>
<value><string>765101293</string></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>
It sounds like all you need is:
but it's hard to guess given the small sample XML file input/output in your question.
Please remember this: