Capturing string between a xml tag


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Capturing string between a xml tag
# 1  
Old 05-14-2008
Java Capturing string between a xml tag

Hi All,
I have an XML-:
Code:
       <ProcId>CES_P5010_AddVLan</ProcId>
        <DataVersion>yxcxycyxcycyxc</DataVersion>
        <JobId>OR3000055-002-1</JobId>
          </CesHeader>
    <VLanServiceList>
        <NopId>blu</NopId>
    </VLanServiceList>
            <StatusNPA>2</StatusNPA>
        <ErrorTextNPA>Exception occurred trying to create Management Service :Exception occurred trying to create Service :Error Code=239023  [Virtual LAN: ].. ** </ErrorTextNPA>
    </NPAErrorHandling>
</CesResponse>



Here I want to have a shell script to get the string in the tag <ErrorTextNPA>*****<ErrorTextNPA>. Can any one help me on this.
Regards
Amit

Last edited by Yogesh Sawant; 05-14-2008 at 08:17 AM.. Reason: added code tags
# 2  
Old 05-14-2008
Is this a single long line, or spanning over multiple lines?

As such, the following doesn't really care.

Code:
perl -0777 -pe 's%.*<ErrorTextNPA>%%s;s%</ErrorTextNPA>.*%%s' file

# 3  
Old 05-14-2008
moved the thread from solaris to shell scripting for this is not a solris specific question...
# 4  
Old 05-14-2008
using sed,

cat filename | grep -e '<ErrorTextNPA>' | sed 's/<ErrorTextNPA>\(.*\)<\/ErrorTextNPA>/\1/'
Thanks
Penchal
# 5  
Old 05-14-2008
Actually the cat and grep are redundant.

Code:
sed -n 's%.*<ErrorTextNPA>\(.*\)</ErrorTextNPA>.*%\1%p' file.xml

However, it won't work if the open and close tags are on different lines. (There are ways to cope with that in sed, too, of course.)
# 6  
Old 05-14-2008
Quote:
<ProcId>CES_P5010_AddVLan</ProcId>
<DataVersion>yxcxycyxcycyxc</DataVersion>
<JobId>OR3000055-002-1</JobId>
</CesHeader>
<VLanServiceList>
<NopId>blu</NopId>
</VLanServiceList>
<StatusNPA>2</StatusNPA>
<ErrorTextNPA>Exception occurred trying to create Management Service :Exception occurred trying to create Service :Error Code=239023 [Virtual LAN: ].. **
</ErrorTextNPA>
</NPAErrorHandling>
</CesResponse>
The best way to handle this type of problem is to use an XSLT processor together with an XSL stylesheet to transform the XML document into whatever output you want - in this case the contents of the XML element <ErrorTextNPA>. UNIX command line tool such as awk, sed, etc were never designed to efficiently handle XML documents.

I would note that this is not possible for the supplied XML document since it is not a well-formed or valid XML document (missing root, missing opening tags, etc.)
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

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

4. Shell Programming and Scripting

XML Parse between to tag with upper tag

Hi Guys Here is my Input : <?xml version="1.0" encoding="UTF-8"?> <xn:MeContext id="01736"> <xn:VsDataContainer id="01736"> <xn:attributes> <xn:vsDataType>vsDataMeContext</xn:vsDataType> ... (12 Replies)
Discussion started by: pareshkp
12 Replies

5. Shell Programming and Scripting

How to check empty string in an XML tag?

I have an XML tag <abc> which is empty as <abc></abc>.If the the tag is empty I want to flag the file as bad. Please help. Thanks (3 Replies)
Discussion started by: aneeta13
3 Replies

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

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

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

9. Shell Programming and Scripting

Cut xml value with in a tag

Hi, How can I cut/copy or assign it to a variable of a value in xml tag. for example: below is the xml tag in an xml <description>Successfully processed the request</description> now I need a ouput like below. my $description = /<description>($.)<\/description>/; print... (1 Reply)
Discussion started by: thankful123
1 Replies

10. Shell Programming and Scripting

how to get xml tag..

Sorry to trouble you guys again.....but i encounter this problem: My textfile contains this: 2006-01-12 01:12:08,290 INFO - The XML message **************<PM_ARRIVAL xmlns:xsi= "http://www.w3.org/2001/XMLSchemainstance"><system_c>GMS</system_c><trans_c>ARLC</trans_c></<PM_ARRIVAL> 2006-01-12... (8 Replies)
Discussion started by: forevercalz
8 Replies
Login or Register to Ask a Question