how to find the end tag in xml file.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting how to find the end tag in xml file.
# 1  
Old 12-03-2010
how to find the end tag in xml file.

Hi,

I am newbie. I wanted to know how to find the end tag in shell where I have multiple tags in xml like

<tag name="x" version="1.0">
</tag>
<tag name="x" version="1.0">
</tag>
<tag name="x" version="1.0">
</tag>

And I wanted to update depends this xml as (in side the tag <subtag name="y"/>) depending upon the conditions like if 1,I have to update the first tag with the above mentioned tag and second and so on..

Thanks,
Maria Kumar
# 2  
Old 12-03-2010
Please mention your desired output.
R0H0N
# 3  
Old 12-03-2010
I have a string like x,y,z and xml file contains
<tag name="x" version="1.0">
</tag>
<tag name="y" version="1.0">
</tag>
<tag name="z" version="1.0">
</tag>

If I pass x then 'x' application getting updated as
<tag name="x" version="1.0">
<sometext/>
</tag>
If I pass y then 'y' application getting updated as
<tag name="y" version="1.0">
<sometext/>
</tag>

If I pass z then 'z' application getting updated as
<tag name="z" version="1.0">
<sometext/>
</tag>

---------- Post updated at 12:34 PM ---------- Previous update was at 12:32 PM ----------

For that I am searching every end tag then navigate to start tag then I will use sed to update the particular tag.
# 4  
Old 12-03-2010
Write one script:

Code:
#!/bin/ksh

touch optFile         # create empty output file
echo "Enter tag name:\c"       # ask input tag name. E.g. "x" or "y"
read tag                          # read input

cat xmlFile | while read line     # read each line of xmlfile
do
   if [ "$line" = ".*\<tag name\=\"$tag\".*" ] ; then         # if line contains matching tag then
       echo "$line" >> optFile                                      # write original line in output file
       echo "\<sometext\/\>" >> optFile                          # append extra line after matching tag line in output file
   else                                                                      # else
       echo "$line" >> optFile                                     # write line as it is in output file
   fi
done


Last edited by R0H0N; 12-03-2010 at 03:24 AM.. Reason: Explaination
R0H0N
# 5  
Old 12-03-2010
Can you explain Plz..
# 6  
Old 12-03-2010
I have edited the solution. Please Contact for more help.
R0H0N
# 7  
Old 12-03-2010
Thanks for your solution. I will verify it.

---------- Post updated at 01:16 PM ---------- Previous update was at 01:04 PM ----------

cat xmlFile | while read line # read each line of xmlfile
do
if [ "$line" = ".*\<tag name\=\"$tag\".*" ] ; then # if line contains matching tag then
echo "$line" >> optFile # I need to get </tag> so that I can use this command==> sed '/<\/tag>/i\ <sometext\/\> ' $file $file2
echo "\<sometext\/\>" >> optFile # append extra line after matching tag line in output file
else # else
echo "$line" >> optFile # write line as it is in output file
fi
done

Last edited by mariakumar3; 12-03-2010 at 04:34 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Grepping multiple XML tag results from XML file.

I want to write a one line script that outputs the result of multiple xml tags from a XML file. For example I have a XML file which has below XML tags in the file: <EMAIL>***</EMAIL> <CUSTOMER_ID>****</CUSTOMER_ID> <BRANDID>***</BRANDID> Now I want to grep the values of all these specified... (1 Reply)
Discussion started by: shubh752
1 Replies

2. 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

3. Shell Programming and Scripting

Extracting the tag name from an xml file

Hi, My requirement is something like this, I have a xml file that contains some tags and nested tags, <n:tag_name1> <n:sub_tag1>val1</n:sub_tag1> <n:sub_tag2>val2</n:sub_tag2> </n:tag_name1> <n:tag_name2> <n:sub_tag1>value</n:sub_tag1> ... (6 Replies)
Discussion started by: Little
6 Replies

4. Shell Programming and Scripting

To search for a particular tag in xml and collate all similar tag values and display them count

I want to basically do the below thing. Suppose there is a tag called object1. I want to display an output for all similar tag values under heading of Object 1 and the count of the xmls. Please help File: <xml><object1>house</object1><object2>child</object2>... (9 Replies)
Discussion started by: srkmish
9 Replies

5. UNIX for Dummies Questions & Answers

GREP for a tag in XML File

I have 2 XML Data files with a tag named PARTICIPATION_TYPE and i am trying to grep for that and getting unique values. However one of the xml data file data is not aligned properly like below. File 1: (works fine when i do grep) grep "PARTICIPATION_TYPE" file1.xml | sort -u Data: ....... (3 Replies)
Discussion started by: Ariean
3 Replies

6. Shell Programming and Scripting

Find out values between xml tag

Find out values between xml tag ....... ABC><name></ABC><xyz>test</xyz>..here some other tag... <ABC><NUMBER></ABC><xyz>12345</xyz>.... ....... I want to take between bewtween ABC><NUMBER></ABC><xyz> to </xyz> that is 12345 (3 Replies)
Discussion started by: Jairaj
3 Replies

7. 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

8. Shell Programming and Scripting

How to retrieve the value from XML tag whose end tag is in next line

Hi All, Find the following code: <Universal>D38x82j1JJ </Universal> I want to retrieve the value of <Universal> tag as below: Please help me. (3 Replies)
Discussion started by: mjavalkar
3 Replies

9. Shell Programming and Scripting

XML tag replacement from different XML file

We have 2 XML file 1. ORIGINAL.xml file and 2. ATTRIBUTE.xml files, In the ORIGINAL.xml we need some modification as <resourceCode>431048</resourceCode>under <item type="Manufactured"> tag - we need to grab the 431048 value from tag and pass it to database table in unix shell script to find the... (0 Replies)
Discussion started by: balrajg
0 Replies

10. Shell Programming and Scripting

How to enter a newline after every XML tag end?

Hi Guyz, I have an XML message in following format: I want my contents to be formatted in following order: i.e. I want a newline after every XML tag end. How to do this? Thnx in advance. (5 Replies)
Discussion started by: DTechBuddy
5 Replies
Login or Register to Ask a Question