I have xml file which contains data .
<STOKUNIT>
<BELGETARIGI>2017-09-20</BELGETARIGI>
<STOKKODU>1KKUPS0098</STOKKODU>
<STOKADI>New Bone China 3-Lu Kupa Seti</STOKADI>
<RENK>139</RENK>
<BEDEN>.</BEDEN>
<STOKBARKODU>8680044399128</STOKBARKODU>
<FATURANO>6-R-7-4825</FATURANO>
<MAGAZAKODU>MGUR-02</MAGAZAKODU>
<MAGAZAADI>GURCISTAN TIFLIS DIGOMI CAD. MAGAZA</MAGAZAADI>
<MIKTAR>1.00</MIKTAR>
<SATISSORUMLUSUKODU>99055</SATISSORUMLUSUKODU>
<SATISSORUMLUSUADI>MARIAM SULIAVRI</SATISSORUMLUSUADI>
<KDVTUTAT>4.71</KDVTUTAT>
<FIYAT>30.89</FIYAT>
<TUTAR>30.89</TUTAR>
<INDIRIMTUTAR>0.00</INDIRIMTUTAR>
<BIRIMFIYAT>30.89</BIRIMFIYAT>
<NETTUTAR>30.89</NETTUTAR>
<ODEMETIPI> Nakit</ODEMETIPI>
<ODEMEACIKLAMASI> Nakit</ODEMEACIKLAMASI>
</STOKUNIT>
I want to split only FATURANO Like that
6-R-7
and
4825
And this "4825" should have different name.
<STOKUNIT>
<BELGETARIGI>2017-09-20</BELGETARIGI>
<STOKKODU>1KKUPS0098</STOKKODU>
<STOKADI>New Bone China 3-Lu Kupa Seti</STOKADI>
<RENK>139</RENK>
<BEDEN>.</BEDEN>
<STOKBARKODU>8680044399128</STOKBARKODU>
<FATURANO>6-R-7</FATURANO>
***<NEWONE>4825</NEWONE>***
<MAGAZAKODU>MGUR-02</MAGAZAKODU>
<MAGAZAADI>GURCISTAN TIFLIS DIGOMI CAD. MAGAZA</MAGAZAADI>
<MIKTAR>1.00</MIKTAR>
<SATISSORUMLUSUKODU>99055</SATISSORUMLUSUKODU>
<SATISSORUMLUSUADI>MARIAM SULIAVRI</SATISSORUMLUSUADI>
<KDVTUTAT>4.71</KDVTUTAT>
<FIYAT>30.89</FIYAT>
<TUTAR>30.89</TUTAR>
<INDIRIMTUTAR>0.00</INDIRIMTUTAR>
<BIRIMFIYAT>30.89</BIRIMFIYAT>
<NETTUTAR>30.89</NETTUTAR>
<ODEMETIPI> Nakit</ODEMETIPI>
<ODEMEACIKLAMASI> Nakit</ODEMEACIKLAMASI>
</STOKUNIT>
I Need convert xml data like that but if u answer me only with first question how to split string correctly i will do other transpormation
With single xmlstarlet expression:
xmlstarlet ed -u '//STOKUNIT/FATURANO' -x "substring(., 0,string-length(.)-4)" \
-a '//STOKUNIT/FATURANO' -t elem -n NEWONE \
-v "$(xmlstarlet sel -t -v 'substring(//STOKUNIT/FATURANO, string-length(//STOKUNIT/FATURANO)-3)' file.xml)" file.xml
ed
- edit mode
-x
- xpath expression
-a
- append element
-t
- the type of the appended element (in edit mode)
-n
- the name of the appended element
-v
- the value of the updated/appended element
The output:
<?xml version="1.0"?>
<STOKUNIT>
<BELGETARIGI>2017-09-20</BELGETARIGI>
<STOKKODU>1KKUPS0098</STOKKODU>
<STOKADI>New Bone China 3-Lu Kupa Seti</STOKADI>
<RENK>139</RENK>
<BEDEN>.</BEDEN>
<STOKBARKODU>8680044399128</STOKBARKODU>
<FATURANO>6-R-7</FATURANO>
<NEWONE>4825</NEWONE>
<MAGAZAKODU>MGUR-02</MAGAZAKODU>
<MAGAZAADI>GURCISTAN TIFLIS DIGOMI CAD. MAGAZA</MAGAZAADI>
<MIKTAR>1.00</MIKTAR>
<SATISSORUMLUSUKODU>99055</SATISSORUMLUSUKODU>
<SATISSORUMLUSUADI>MARIAM SULIAVRI</SATISSORUMLUSUADI>
<KDVTUTAT>4.71</KDVTUTAT>
<FIYAT>30.89</FIYAT>
<TUTAR>30.89</TUTAR>
<INDIRIMTUTAR>0.00</INDIRIMTUTAR>
<BIRIMFIYAT>30.89</BIRIMFIYAT>
<NETTUTAR>30.89</NETTUTAR>
<ODEMETIPI> Nakit</ODEMETIPI>
<ODEMEACIKLAMASI> Nakit</ODEMEACIKLAMASI>
</STOKUNIT>