Sponsored Content
Top Forums Shell Programming and Scripting XML: parsing of the Google contacts XML file Post 302747873 by ripat on Sunday 23rd of December 2012 01:06:58 PM
Old 12-23-2012
XML: parsing of the Google contacts XML file

I am trying to parse the XML Google contact file using tools like xmllint and I even dived into the XSL Style Sheets using xsltproc but I get nowhere.

I can not supply any sample file as it contains private data but you can download your own contacts using this script:
Code:
#!/bin/sh

# imports Google Contacts
# imported data is stored in contacts.xml file (current directory)

# You will need curl and xmllint tools

LOGIN="your.login@gmail.com"
PASSW="your_passw"

AUTH=$(curl --silent https://www.google.com/accounts/ClientLogin \
-d Email=$LOGIN \
-d Passwd=$PASSW \
-d accountType=GOOGLE \
-d service=cp \
-d Gdata-version=3.0 | grep '^Auth')

curl --silent -o /tmp/contacts.tmp https://www.google.com/m8/feeds/contacts/default/full?max-results=5 \
--header "Authorization: GoogleLogin auth=${AUTH#*=}" \
--header "GData-Version: 3.0" \

# format nicely the Google output
xmllint --format /tmp/contacts.tmp > contacts.xml

I can get the root node:
Code:
$ xmllint --xpath '/' contacts.xml

But it fails when I try the first node below root: <feed>
Code:
$ xmllint --xpath '/feed' contacts.xml 
XPath set is empty

 

9 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Parsing xml file using Sed

Hi All, I have this(.xml) file as: <!-- define your instance here --> <instance name='ins_C2Londondev' user='' group='' fullname='B2%20-%20London%20(dev)' > <property> </property> </instance> I want output as: <!-- define your instance here --> <instance... (3 Replies)
Discussion started by: kapilkinha
3 Replies

2. Shell Programming and Scripting

XML file parsing using script

Hi I need some help with XML file parsing. I have an XML file with the below tag, I need a script to identify the value of srvcName which is this case is "AAA srvc name". I need to put contents of this value which is AAA srvc and name into different variables using an array and then reformat it... (6 Replies)
Discussion started by: zmfcat1
6 Replies

3. UNIX for Dummies Questions & Answers

Help parsing a XML file ....

Well I have read several threads on the subject ... but being a newbie like me makes it hard to understand ... What I need is the following: Input data: ------- snip --------- <FavouriteLocations> <FavouriteLocations class="FavouriteList"><Item... (6 Replies)
Discussion started by: misak
6 Replies

4. Shell Programming and Scripting

Parsing xml file

hi guys, great help to the original question, can i expand please? i have large files filled with blocks like this <Placemark> network type: hot line1 line2 line3 <styleUrl>red.png</styleUrl> </Placemark> <Placemark> network type: cold line1 line2 line3... (3 Replies)
Discussion started by: garvald
3 Replies

5. Shell Programming and Scripting

Help in parsing xml file (sed/nawk)

I have a large xml file as shown below: <input> <blah> <blah> <atr="blah blah value = ""> <blah> <blah> </input> ..2nd chunk... ..3rd chunk... ...4th chunk... All lines between <input> and </input> is one 'order' and this 'order' is repeated... (14 Replies)
Discussion started by: shekhar2010us
14 Replies

6. Shell Programming and Scripting

parsing xml file

Hello! We need to parse weblogic config.xml file and display rows in format: machine:listen-port:name:application_name In our enviroment the output should be (one line for every instance): Crm-Test-Web:8001:PIA:peoplesoft Crm-Test-Web:8011:PIA:peoplesoft... (9 Replies)
Discussion started by: annar
9 Replies

7. Shell Programming and Scripting

Parsing an XML file

Hello, I have the following xml file as an input. <?xml version="1.0" encoding="UTF-8"?> <RECORDS PS3_VERSION="1104_01"><RECORD> <POI_ID>931</POI_ID> <SUPPLIER_ID>2</SUPPLIER_ID> <POI_PVID>997920846</POI_PVID> <DB_ID>1366650925</DB_ID> <REGION>H1</REGION> <POI_NAME NAME_TYPE="Official"... (4 Replies)
Discussion started by: ramky79
4 Replies

8. UNIX for Dummies Questions & Answers

Parsing XML file

I want to parse xml file sample file....... <name locale="en">my_name<>/name><lastChanged>somedate</lastChanged><some more code here> <name locale="en">tablename1<>/name><lastChanged>somedate</lastChanged> <definition><dbquery><sources><sql type="cognos">select * from... (10 Replies)
Discussion started by: ms2001
10 Replies

9. Shell Programming and Scripting

Help with parsing xml file

Hi, Need help with parsing xml data in unix and place it in a csv file. My xml file looks like this: <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <iwgroups> <nextid value="128"> </nextid> <iwgroup name="RXapproval" id="124" display-name="RXapproval"... (11 Replies)
Discussion started by: ajayakunuri
11 Replies
Net::Google::AuthSub(3pm)				User Contributed Perl Documentation				 Net::Google::AuthSub(3pm)

NAME
Net::Google::AuthSub - interact with sites that implement Google style AuthSub SYNOPSIS
my $auth = Net::Google::AuthSub->new; my $response = $auth->login($user, $pass); if ($response->is_success) { print "Hurrah! Logged in "; } else { die "Login failed: ".$response->error." "; } my %params = $auth->auth_params; $params{Content_Type} = 'application/atom+xml; charset=UTF-8'; $params{Content} = $xml; $params{'X-HTTP-Method-Override'} = 'DELETE'; my $request = POST $url, %params; my $r = $user_agent->request( $request ); ABOUT AUTHSUB
AuthSub is Google's method of authentication for their web services. It is also used by other web sites. You can read more about it here. http://code.google.com/apis/accounts/Authentication.html A Google Group for AuthSub is here. http://groups.google.com/group/Google-Accounts-API DEALING WITH CAPTCHAS
If a login response fails then it may set the error code to 'CaptchRequired' and the response object will allow you to retrieve the "captchatoken" and "captchaurl" fields. The "captchaurl" will be the url to a captcha image or you can show the user the web page https://www.google.com/accounts/DisplayUnlockCaptcha Then retry the login attempt passing in the parameters "logintoken" (which is the value of "captchatoken") and "logincaptcha" which is the user's answer to the CAPTCHA. my $auth = Net::Google::AuthSub->new; my $res = $auth->login($user, $pass); if (!$res->is_success && $res->error eq 'CaptchaRequired') { my $answer = display_captcha($res->captchaurl); $auth->login($user, $pass, logintoken => $res->captchatoken, logincaptcha => $answer); } You can read more here http://code.google.com/apis/accounts/AuthForInstalledApps.html#Using METHODS
new [param[s]] Return a new authorisation object. The options are url The base url of the web service to authenticate against. Defaults to "https://google.com/account" service Name of the Google service for which authorization is requested such as 'cl' for Calendar. Defaults to 'xapi' for calendar. source Short string identifying your application, for logging purposes. Defaults to 'Net::Google::AuthSub-<VERSION>' accountType Type of account to be authenticated. Defaults to 'HOSTED_OR_GOOGLE'. See http://code.google.com/apis/accounts/AuthForInstalledApps.html#ClientLogin for more details. login <username> <password> [opt[s]] Login to google using your username and password. Can optionally take a hash of options which will override the default login params. Returns a "Net::Google::AuthSub::Response" object. authorised Whether or not we're authorised. authorized An alias for authorized. auth <username> <token> Use the AuthSub method for access. See http://code.google.com/apis/accounts/AuthForWebApps.html for details. auth_token [token] Get or set the current auth token auth_type [type] Get or set the current auth type Returns either $Net::Google::AuthSub::CLIENT_LOGIN or $Net::Google::AuthSub::AUTH_SUB. request_token <next> <scope> [option[s]] Return a URI object representing the URL which the user should be directed to in order to aquire a single use token. The parameters are next (required) URL the user should be redirected to after a successful login. This value should be a page on the web application site, and can include query parameters. scope (required) URL identifying the service to be accessed. The resulting token will enable access to the specified service only. Some services may limit scope further, such as read-only access. For example http://www.google.com/calendar/feed secure Boolean flag indicating whether the authentication transaction should issue a secure token(1) or a non-secure token(0). Secure tokens are available to registered applications only. session Boolean flag indicating whether the one-time-use token may be exchanged for a session token(1) or not(0). session_token Exchange the temporary token for a long-lived session token. The single-use token is acquired by visiting the url generated by calling request_token. Returns the token if success and undef if failure. revoke_token Revoke a valid session token. Session tokens have no expiration date and will remain valid unless revoked. Returns 1 if success and undef if failure. token_info Call AuthSubTokenInfo to test whether a given session token is valid. This method validates the token in the same way that a Google service would; application developers can use this method to verify that their application is getting valid tokens and handling them appropriately without involving a call to the Google service. It can also be used to get information about the token, including next URL, scope, and secure status, as specified in the original token request. Returns a "Net::Google::AuthSub::Response" object on success or undef on failure. auth_params Return any parameters needed in an HTTP request to authorise your app. AUTHOR
Simon Wistow <simon@thegestalt.org> COPYRIGHT
Copyright, 2007 - Simon Wistow Released under the same terms as Perl itself perl v5.10.0 2009-05-09 Net::Google::AuthSub(3pm)
All times are GMT -4. The time now is 02:24 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy