Sponsored Content
Top Forums Shell Programming and Scripting How to remove some xml tag lines using shell script Post 302485565 by fpmurphy on Wednesday 5th of January 2011 02:11:09 PM
Old 01-05-2011
If xsltproc is available to you, the following script (update.sh) will do what you want assuming that the input file is extract.xml and the output file is updated.xml.
Code:
#!/bin/bash

if test -z "$1"
then
   echo "ERROR: No command-line argument provided"
   exit 1
fi
WorkOrder=$1

[[ -f updated.xml ]] || {
   cat > updated.xml <<EOF
<?xml version="1.0" encoding="utf-8" ?>
<scbm-extract version="3.3">
   <workOrderList>
   </workOrderList>
</scbm-extract>
EOF
}

cat > updatexsl.$$ <<EOF
<xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

   <!-- XSLTPROC pass in as -param name "'value'" etc -->
   <xsl:param name="woc">EMPTY</xsl:param>

   <xsl:output method="xml" indent="yes" encoding="utf-8"/>
   <xsl:strip-space elements="*"/>

   <xsl:template match="/">
      <xsl:apply-templates />
   </xsl:template>

   <xsl:template match="scbm-extract">
     <xsl:copy>
        <xsl:apply-templates select="workOrderList"/>
     </xsl:copy>
   </xsl:template>

   <xsl:template match="workOrderList">
     <xsl:copy>
        <xsl:apply-templates select="workOrder"/>
        <xsl:copy-of select="document('./extract.xml')//workOrder[workOrderCode=\$woc]" />
     </xsl:copy>
   </xsl:template>

   <xsl:template match="workOrder">
       <xsl:copy-of select = "." />
   </xsl:template>

</xsl:stylesheet>
EOF

xsltproc -param woc "'${WorkOrder}'" updatexsl.$$ updated.xml > updated.$$

mv updated.$$ updated.xml

rm -f updated.$$
rm -f updatexsl.$$

exit 0

Here is the output for the first update (184851):
Code:
$ ./update.sh 184851
$ cat updated.xml
<?xml version="1.0" encoding="utf-8"?>
<scbm-extract>
  <workOrderList>
    <workOrder>
      <branchCode>2022:100</branchCode>
      <workOrderCode>184851</workOrderCode>
    </workOrder>
  </workOrderList>
</scbm-extract>
$

and here is the output for the second update (184852):
Code:
$ ./update.sh 184852
$ cat updated.xml
<?xml version="1.0" encoding="utf-8"?>
<scbm-extract>
  <workOrderList>
    <workOrder>
      <branchCode>2022:100</branchCode>
      <workOrderCode>184851</workOrderCode>
    </workOrder>
    <workOrder>
      <branchCode>2023:100</branchCode>
      <workOrderCode>184852</workOrderCode>
    </workOrder>
  </workOrderList>
</scbm-extract>

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to remove xml namespace from xml file using shell script?

I have an xml file: <AutoData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Table1> <Data1 10 </Data1> <Data2 20 </Data2> <Data3 40 </Data3> <Table1> </AutoData> and I have to remove the portion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" only. I tried using sed... (10 Replies)
Discussion started by: Gary1978
10 Replies

2. Shell Programming and Scripting

shell command to remove some XML tag is needed

Hi all, I have a file which i have to remove some line from it, the lines that i have to remove from my file is as below: </new_name></w"s" langue="Fr-fr" version="1.0" encoding="UTF-8" ?> <New_name> and it is finding at the middle of my file, is there any command line in linux to do it or do... (10 Replies)
Discussion started by: id_2pc
10 Replies

3. Shell Programming and Scripting

How to add the multiple lines of xml tags before a particular xml tag in a file

Hi All, I'm stuck with adding multiple lines(irrespective of line number) to a file before a particular xml tag. Please help me. <A>testing_Location</A> <value>LA</value> <zone>US</zone> <B>Region</B> <value>Russia</value> <zone>Washington</zone> <C>Country</C>... (0 Replies)
Discussion started by: mjavalkar
0 Replies

4. UNIX for Advanced & Expert Users

Shell Script to read XML tags and the data within that tag

Hi unix Gurus, I am really new to Unix Scripting. Please help me to create a shell script which reads the xml file and from that i need to fetch a particular information. For example <SOURCE BUSINESSNAME ="" DATABASETYPE ="Teradata" DBDNAME ="DWPROD3" DESCRIPTION ="" NAME... (2 Replies)
Discussion started by: SmilePlease
2 Replies

5. Shell Programming and Scripting

How can I remove some xml tag lines using shell script?

Hi All, My name is Prathyu and I am working as a ETL develper. I have one requirement to create a XML file based on the provided XSD file. As per the Datastage standards Key(repeatable) field does not contain any Null values so I am inserting some dummy tag line to that XML file. ... (14 Replies)
Discussion started by: Prathyu
14 Replies

6. Shell Programming and Scripting

Modify XML tag using shell script

Hi All Need some help with a unix shell script. I have a XML file as shown below: <Root> <Service> <endPoint type="SOAP" protocol="http"> <provider>ABCD</provider> <urlRewrite>/service/xyz/getAccountDetails</urlRewrite> <timeout>30</timeout> </endPoint> </Service> <Service> <endPoint... (3 Replies)
Discussion started by: abhilwa
3 Replies

7. Shell Programming and Scripting

Print a closing XML tag shell script

I have a shell script that does everything I need it to do. But, when I was testing it I realized it doesn't print the closing XML tag.... Does anyone know how to incorporate printing the XML tag with my script? I am using AWK any help would be appreciated. (4 Replies)
Discussion started by: risarose87
4 Replies

8. Shell Programming and Scripting

How to remove html tag which has multiple lines in SHELL?

I want to clean a html file. I try to remove the script part in the html and remove the rest of tags and empty lines. The code I try to use is the following: sed '/<script/,/<\/script>/d' webpage.html | sed -e 's/<*>//g' | sed '/^\s*$/d' > output.txt However, in this method, I can not... (10 Replies)
Discussion started by: YuhuiFeng
10 Replies

9. Shell Programming and Scripting

Read xml tags and then remove the tag using shell script

<Start> <Header> This is header section </Header> <Body> <Body_start> This is body section <a> <b> <c> <st>111</st> </c> <d> <st>blank</st> </d> </b> </a> </Body_start> <Body_section> This is body section (3 Replies)
Discussion started by: RJG
3 Replies

10. Shell Programming and Scripting

Moving XML tag/contents after specific XML tag within same file

Hi Forum. I have an XML file with the following requirement to move the <AdditionalAccountHolders> tag and its content right after the <accountHolderName> tag within the same file but I'm not sure how to accomplish this through a Unix script. Any feedback will be greatly appreciated. ... (19 Replies)
Discussion started by: pchang
19 Replies
cdde.xml(5)															       cdde.xml(5)

NAME
cdde.xml - Configuration file for cdde DESCRIPTION
When cdde is run for the first time, an example xml configuration file (~/.cdde.xml) is created for you: <?xml version="1.0"?> <cdde delay="5000000"> <drive path="/dev/cdrom"> <audio command="echo An audio cd was inserted."/> <data command="echo A data cd was inserted."/> <dvd command="echo A dvd was inserted."/> <vcd command="echo A vcd was inserted."/> <svcd command="echo A svcd was inserted."/> <blank command="echo A blank cdr/dvdr was inserted."/> <mixed command="echo A mixed (audio/data) cd was inserted."/> </drive> </cdde> This default file is not very useful, and so I suggest you to edit it to your needs before running cdde again. You may add as many drive entries, or commands as you like. If multiple entries are found for a type of disc then all entries will be run in the order they are found. The specific device in use can be passed to the command with one of the following special tags: %dev% - is replaced with the device name of the cdrom that just had a disc inserted %mnt% - is replaced with the listed mount point for the cdrom that just had a disc inserted Note: %mnt% is determined through your fstab (usually located in /etc) file. If you do not have a listing for each <drive> in the fstab this will cause problems. This way, you can tell your video player which device to use when playing a VCD, for example. EXAMPLE
This is an example of ~/.cdde.xml file: <?xml version="1.0"?> <cdde delay="5000000"> <drive path="/dev/cdroms/cdrom0"/> <audio command="xmms %mnt%"/> <data command="mount %mnt%"/> <dvd command="xterm -iconic -e mplayer -fs -xineramascreen 1 -dvd 1"/> <vcd command="xterm -iconic -e mplayer -fs -xineramascreen 1 -vcd 1"/> <svcd command="xterm -iconic -e mplayer -fs -xineramascreen 1 -vcd 1"/> <blank command="gcombust"/> <mixed command="mount %mnt%"/> </drive> </cdde> FILES
~/.cdde.xml SEE ALSO
cdde(1) AUTHORS
Eric Lathrop <eric@ericlathrop.com> Stanislav Maslovski <stanislav.maslovski@gmail.com> WEBSITE
For the latest release of cdde, see: http://cdde.sourceforge.net/ Eric Lathrop 0.3.1 cdde.xml(5)
All times are GMT -4. The time now is 09:52 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy