Thanks Robert, you're an invaluable resource (take that as a compliment ;) ).

Wayne

On 22 Nov 2013, at 2:08 am, Robert Shubert <[email protected]> wrote:

> Wayne (and all)
>
> The (tested) answer is:
>
> You do not need to alter the XML before parsing with @DOM
>
> You do need to deal with the namespace (but a wildcard will work)
>
> You should use @ELEMENTNAME to get the list of elements for counting purposes
>
> You need to use // to get elements at any level or / to get an element from 
> the root
>
> Therefore, this will work:
>
> <@ASSIGN entries <@ELEMENTNAME xpath=’//*:entry’ type=array>>
> Number of entries: <@NUMROWS array=entries>
>
> Alternatively, this xpath will work: /*:feed/*:entry
>
> To get the IDs in an array, this is this xpath: //*:entry/*:id
>
> To access the parts of a specific entry (id in this example), the xpath is 
> this:
>
> //*:entry[position()=x]/*:id
>
> (where 1 <= x <= numberOfEntries)
>
> This way you can loop over the entries and access their elements.
>
> Hope that helps
>
> Robert
>
>
> From: Wayne Irvine [mailto:[email protected]]
> Sent: Wednesday, November 20, 2013 3:19 AM
> To: [email protected]
> Subject: Re: TeraScript-Talk: XML help (again)
>
> /feed/id and /feed/title are sort of header information. The guts of it would 
> be /feed/entry/id etc.
>
> But none of that seems to work. Not sure why.
>
> I am trying one of the XML Editors to see what they can do.
>
> Wayne Irvine
>
> On 20 Nov 2013, at 12:18 pm, Dale Graham <[email protected]> wrote:
>
>
> Try this
>
> /feed/id
>
> feed is the “parent” (start and stop tag)
> id is directly under the parent “feed”
>
> This array you are getting appears to be VERY simple… just one parent and a 
> ton of “children”
> You read from the parent to the child element you want. You can see why being 
> able to “pretty up” a more complex flow would be a problem, but the one 
> you’re getting is fairly simple.
>
>
> so to get id
>
> /feed/id
>
> to get title
>
> /feed/title
>
> etc
>
> Ignore the <?xml line
>
>
> It is helpful if you can get an XML editor that will do “pretty” for you - as 
> this will format things so they are more “readable” for this purpose.  Oxygen 
> XML is great because you can just type in what you think is the Xpath and it 
> will cough up the value (if the path is correct). But it’s also expensive…
>
>
>
>
>
> <?xml version='1.0' encoding='UTF-8'?>
> <feed xmlns='http://www.w3.org/2005/Atom' 
> xmlns:app='http://purl.org/atom/app#'xmlns:media='http://search.yahoo.com/mrss/'
>  
> xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'xmlns:gd='http://schemas.google.com/g/2005'
>  xmlns:yt='http://gdata.youtube.com/schemas/2007'>
> <id>http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ/uploads</id>
> <updated>2013-11-18T21:43:35.006Z</updated>
>
> to (making it clearer what is parent and child
>
>
> <?xml version='1.0' encoding='UTF-8'?>
> <feed xmlns='http://www.w3.org/2005/Atom' 
> xmlns:app='http://purl.org/atom/app#'xmlns:media='http://search.yahoo.com/mrss/'
>  
> xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'xmlns:gd='http://schemas.google.com/g/2005'
>  xmlns:yt='http://gdata.youtube.com/schemas/2007'>
>             
> <id>http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ/uploads</id>
>             <updated>2013-11-18T21:43:35.006Z</updated>
>
>
> To get an array of the IDs
>
>
> <@ASSIGN NAME=idarray SCOPE=local VALUE="<@ELEMENTVALUE myDom 
> xpath=‘/feed/id’ type=‘array'>">
>
>
>
>
> On Nov 18, 2013, at 5:37 PM, Wayne Irvine <[email protected]> wrote:
>
>
> I'm trying to parse some feeds from Youtube's API and not having much luck.
>
> The results look like this:
>
> <?xml version='1.0' encoding='UTF-8'?>
> <feed xmlns='http://www.w3.org/2005/Atom' 
> xmlns:app='http://purl.org/atom/app#'xmlns:media='http://search.yahoo.com/mrss/'
>  
> xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'xmlns:gd='http://schemas.google.com/g/2005'
>  xmlns:yt='http://gdata.youtube.com/schemas/2007'>
> <id>http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ/uploads</id>
> <updated>2013-11-18T21:43:35.006Z</updated>
> <category 
> scheme='http://schemas.google.com/g/2005#kind'term='http://gdata.youtube.com/schemas/2007#video'/>
> <title type='text'>Uploads by Brandon Evertz</title>
> <logo>http://www.gstatic.com/youtube/img/logo.png</logo>
> <link rel='related' type='application/atom+xml' 
> href='http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ'/>
> <link rel='alternate' type='text/html' 
> href='http://www.youtube.com/channel/UCX-7L4IiiN1PpoNEoFj3rXQ/videos'/>
> <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' 
> href='http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ/uploads'/>
> <link rel='http://schemas.google.com/g/2005#batch' 
> type='application/atom+xml' 
> href='http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ/uploads/batch'/>
> <link rel='self' type='application/atom+xml' 
> href='http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ/uploads?start-index=1&max-results=25'/>
> <link rel='next' type='application/atom+xml' 
> href='http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ/uploads?start-index=26&max-results=25'/>
> <author>
> <name>Brandon Evertz</name>
> <uri>http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ</uri>
> </author>
> <generator version='2.1' uri='http://gdata.youtube.com'>YouTube data 
> API</generator>
> <openSearch:totalResults>869</openSearch:totalResults>
> <openSearch:startIndex>1</openSearch:startIndex>
> <openSearch:itemsPerPage>25</openSearch:itemsPerPage>
>
>
>
> <entry>
> <id>http://gdata.youtube.com/feeds/api/videos/dw8EGJGFfzE</id>
> <published>2013-11-18T11:08:57.000Z</published>
> <updated>2013-11-18T11:08:57.000Z</updated>
> <app:control>
> <yt:state name='restricted' reasonCode='limitedSyndication'>Syndication of 
> this video was restricted.</yt:state>
> </app:control>
> <category 
> scheme='http://schemas.google.com/g/2005#kind'term='http://gdata.youtube.com/schemas/2007#video'/>
> <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' 
> term='Entertainment' label='Entertainment'/>
> <title type='text'>Trailer Princess VIP Party</title>
> <content type='text'>Preview Big Review TV's exclusive interviews of the 
> hottest models and the coolest guests at the Princess Torrens luxury yacht 
> party.</content>
> <link rel='alternate' type='text/html' 
> href='http://www.youtube.com/watch?v=dw8EGJGFfzE&feature=youtube_gdata'/>
> <link rel='http://gdata.youtube.com/schemas/2007#video.related' 
> type='application/atom+xml' 
> href='http://gdata.youtube.com/feeds/api/videos/dw8EGJGFfzE/related'/>
> <link rel='self' type='application/atom+xml' 
> href='http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ/uploads/dw8EGJGFfzE'/>
> <author>
> <name>Brandon Evertz</name>
> <uri>http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ</uri>
> </author>
> </entry>
>
> <entry>
> <id>http://gdata.youtube.com/feeds/api/videos/FGiypDv_YkU</id>
> <published>2013-11-15T06:58:37.000Z</published>
> <updated>2013-11-15T06:58:37.000Z</updated>
> <category 
> scheme='http://schemas.google.com/g/2005#kind'term='http://gdata.youtube.com/schemas/2007#video'/>
> <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' 
> term='People' label='People & Blogs'/>
> <title type='text'>Webcam video from November 15, 2013 5:56 PM</title>
> <content type='text'/>
> <link rel='alternate' type='text/html' 
> href='http://www.youtube.com/watch?v=FGiypDv_YkU&feature=youtube_gdata'/>
> <link rel='http://gdata.youtube.com/schemas/2007#video.related' 
> type='application/atom+xml' 
> href='http://gdata.youtube.com/feeds/api/videos/FGiypDv_YkU/related'/>
> <link rel='http://gdata.youtube.com/schemas/2007#mobile' type='text/html' 
> href='http://m.youtube.com/details?v=FGiypDv_YkU'/>
> <link rel='self' type='application/atom+xml' 
> href='http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ/uploads/FGiypDv_YkU'/>
> <author>
> <name>Brandon Evertz</name>
> <uri>http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ</uri>
> </author>
> </entry>
>
> <entry>
> <id>http://gdata.youtube.com/feeds/api/videos/ZxJRl_YHn8E</id>
> <published>2013-11-15T01:23:25.000Z</published>
> <updated>2013-11-15T09:08:28.000Z</updated>
> <category 
> scheme='http://schemas.google.com/g/2005#kind'term='http://gdata.youtube.com/schemas/2007#video'/>
> <category scheme='http://gdata.youtube.com/schemas/2007/categories.cat' 
> term='News' label='News & Politics'/>
> <title type='text'>Example</title>
> <content type='text'>Example</content>
> <link rel='alternate' type='text/html' 
> href='http://www.youtube.com/watch?v=ZxJRl_YHn8E&feature=youtube_gdata'/>
> <link rel='http://gdata.youtube.com/schemas/2007#video.related' 
> type='application/atom+xml' 
> href='http://gdata.youtube.com/feeds/api/videos/ZxJRl_YHn8E/related'/>
> <link rel='http://gdata.youtube.com/schemas/2007#mobile' type='text/html' 
> href='http://m.youtube.com/details?v=ZxJRl_YHn8E'/>
> <link rel='self' type='application/atom+xml' 
> href='http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ/uploads/ZxJRl_YHn8E'/>
> <author>
> <name>Brandon Evertz</name>
> <uri>http://gdata.youtube.com/feeds/api/users/X-7L4IiiN1PpoNEoFj3rXQ</uri>
> </author>
> </entry>
>
> </feed>
>
> I'm assigning to a DOM and then attempting to extract and array to get the 
> element count:
>
> <@ASSIGN NAME="myDom" SCOPE="local" VALUE=<@DOM VALUE="@@request$httpData">>
> <@ASSIGN NAME=idarray SCOPE=local VALUE="<@ELEMENTVALUE myDom 
> xpath='/entry/id'>">
>
> I've tried all sorts of things for the xpath:
> /xml/feed/entry/id
> xml/feed/entry/id
> /feed/entry/id
> but all seems to give errors or no results.
>
> Anyone know the correct xpath to extract an array of (for example) IDs?
>
> Wayne Irvine
> w: http://www.byteserve.com.au/
> p: +61 2 9960 6099
> m: 0409 960 609
>
>
>
>
> ----------------------------------------
>
> To unsubscribe from this list, please send an email to 
> [email protected] with "unsubscribe terascript-talk" in the body.
>
> To unsubscribe from this list, please send an email to 
> [email protected] with "unsubscribe terascript-talk" in the body.
>
> Wayne Irvine
> w: http://www.byteserve.com.au/
> p: +61 2 9960 6099
> m: 0409 960 609
>
>
> To unsubscribe from this list, please send an email to 
> [email protected] with "unsubscribe terascript-talk" in the body.
>
> To unsubscribe from this list, please send an email to 
> [email protected] with "unsubscribe terascript-talk" in the body.

Wayne Irvine
w: http://www.byteserve.com.au/
p: +61 2 9960 6099
m: 0409 960 609




----------------------------------------

To unsubscribe from this list, please send an email to [email protected] 
with "unsubscribe terascript-talk" in the body.

Reply via email to