extract a number within an xml file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting extract a number within an xml file
# 1  
Old 10-06-2008
extract a number within an xml file

Hi Everyone, I have an sh script that I am working on and I have run into a little snag that I am hoping someone here can assist me with.

I am using wget to retrieve an xml file from thetvdb.com. This part works ok but what I need to be able to do is extract the series ID # from the xml and put the number into a variable for further use in my script.

Here is an example of an xml:

Code:
<Data>
−
<Series>
<seriesid>73545</seriesid>
<language>en</language>
<SeriesName>Battlestar Galactica (2003)</SeriesName>
<banner>graphical/73545-g11.jpg</banner>
−
<Overview>blah blah blah blah</Overview>
<FirstAired>2003-12-01</FirstAired>
<IMDB_ID>tt0407362</IMDB_ID>
<zap2it_id>SH710749</zap2it_id>
<id>73545</id>
</Series>
</Data>

The number in <seriesid>73545</seriesid> is what I am interested in and
in this case I need "73545" extracted and placed into a variable.

How can I accomplish this. I have been able to print out the entire line using grep so it looks like this. But I need just the number.
<seriesid>73545</seriesid>

I haven't been able to figure out sed or awk enough to make this happen. Help?

Thanks!
Rob
# 2  
Old 10-06-2008
not sure try and see
Code:
variable=`sed -ne 's/\(^\<seriesid\>\)\(.*\)\(\<\/seriesid\>\)/\2/p' filename`

# 3  
Old 10-06-2008
Quote:
Originally Posted by vidyadhar85
not sure try and see
Code:
variable=`sed -ne 's/\(^\<seriesid\>\)\(.*\)\(\<\/seriesid\>\)/\2/p' filename`

Beautiful my friend!

Many thanks Smilie
# 4  
Old 10-06-2008
Ok I just ran into another snag, In some cases when there are multiple hits for a given tv show:

Code:
<Data>
−
<Series>
<seriesid>77847</seriesid>
<language>en</language>
<SeriesName>MacGyver</SeriesName>
<banner>graphical/706-g2.jpg</banner>
−
<Overview>
blah blah blah
</Overview>
<FirstAired>1985-09-29</FirstAired>
<zap2it_id>SH002714</zap2it_id>
<id>77847</id>
</Series>
−
<Series>
<seriesid>83158</seriesid>
<language>en</language>
<SeriesName>Young MacGyver</SeriesName>
−
<Overview>
blah blah blah
</Overview>
<IMDB_ID>tt0352117</IMDB_ID>
<id>83158</id>
</Series>
</Data>

Is there a way to make it compare the name in <SeriesName></SeriesName> to a variable i provide and only capture the seriesID for the match?

Thanks
# 5  
Old 10-06-2008
use head -1 after that command
Code:
variable=`sed -ne 's/\(^\<seriesid\>\)\(.*\)\(\<\/seriesid\>\)/\2/p' filename|head -1`

# 6  
Old 10-06-2008
Quote:
Originally Posted by vidyadhar85
use head -1 after that command
Code:
variable=`sed -ne 's/\(^\<seriesid\>\)\(.*\)\(\<\/seriesid\>\)/\2/p' filename|head -1`

This did the trick, thanks again Vid!!! I really need to learn how to use sed!

Thanks
# 7  
Old 10-06-2008
Quote:
Originally Posted by tret
This did the trick, thanks again Vid!!! I really need to learn how to use sed!

Thanks
Hey vid!

Ok so I'm not sure why but this worked just fine on a mac os x machine but when I used the exact same thing on a linux box it just gives me a blank output, i duplicated everything exactly.

I am running ubuntu hardy, any ideas?

Thanks
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Extract a value from an xml file

I have this XML file format and all in one line: Fri Dec 23 00:14:52 2016 Logged Message:689|<?xml version="1.0" encoding="UTF-8"?><PORT_RESPONSE><HEADER><ORIGINATOR>XMG</ORIGINATOR><DESTINAT... (16 Replies)
Discussion started by: mrn6430
16 Replies

2. UNIX for Dummies Questions & Answers

Extract Element from XML file

<?xml version = '1.0' encoding =... (8 Replies)
Discussion started by: Siva SQL
8 Replies

3. Shell Programming and Scripting

Extract a particular xml only from an xml jar file

Hi..need help on how to extract a particular xml file only from an xml jar file... thanks! (2 Replies)
Discussion started by: qwerty000
2 Replies

4. Shell Programming and Scripting

Get extract text from xml file

Hi Collegue, i have a file say a.xml. it has contents <bpelFault><faultType>1</faultType><genericSystemFault xmlns=""><part name="payload"><v2:Fault... (10 Replies)
Discussion started by: Jewel
10 Replies

5. Shell Programming and Scripting

extract a pattern from a xml file

Hello All, I want to write a shell script for extracting a content from a xml file the xml file looks like this: <Variable name="moreAxleInfo"> <type> <Table> <type> <NamedType> <type> <TypeRef... (11 Replies)
Discussion started by: suvendu4urs
11 Replies

6. Shell Programming and Scripting

Extract a pattern from xml file

Hi, In a single line I have the below xml content <lst name="responseHeader"><int name="status">0</int><int name="QTime">1</int></lst><lst name="status"><lst name=""><str name="name"/><str name="instanceDir">/var/www/search/current/Search/solr/./</str><str... (5 Replies)
Discussion started by: ashokvpp
5 Replies

7. Shell Programming and Scripting

Extract XML content from a file

310439 2012-01-11 03:44:42,291 INFO PutServlet:? - Content of the Message is:="1.0" encoding="UTF-8"?><ESP_SSIA_ACC_FEED> 310440 <BATCH_ID>12345678519</BATCH_ID> 310441 <UID>3498748823</UID> 310442 <FEED_TYPE>FULL</FEED_TYPE> 310443 <MART_NAME>SSIA_DM_TRANSACTIONS</MART_NAME> 310444... (11 Replies)
Discussion started by: arukuku
11 Replies

8. UNIX for Dummies Questions & Answers

Extract Field Value from XML file

Hi, Within a UNIX shell script I need to extract a value from an XML field. The field will contain different values but will always be 6 digits in length. E.g.: <provider-id>999999</provider-id> I've tried various ways but no luck. Any ideas how I might get the provider id (in this case... (2 Replies)
Discussion started by: pnclayt11
2 Replies

9. UNIX for Dummies Questions & Answers

Extract a specific number from an XML file based on the start and end tags

Hello People, I have the following contents in an XML file ........... ........... .......... ........... <Details = "Sample Details"> <Name>Bob</Name> <Age>34</Age> <Address>CA</Address> <ContactNumber>1234</ContactNumber> </Details> ........... ............. .............. (4 Replies)
Discussion started by: sushant172
4 Replies

10. Shell Programming and Scripting

How to extract text from xml file

I have some xml files that got created by exporting a website from RedDot. I would like to extract the cost, course number, description, and meeting information. <?xml version="1.0" encoding="UTF-16" standalone="yes" ?> - <PAG PAG0="3AE6FCFD86D34896A82FCA3B7B76FF90" PAG3="525312"... (3 Replies)
Discussion started by: chrisf
3 Replies
Login or Register to Ask a Question