My bad. Missed that entry tag in all the XML (should have used my XML editor!)

Calling XPATH="/feed/entry/id" doesn't work? It should. See my comments below, 
however.

A lot of times when I am starting a new parsing effort, I download the XML, and 
set up a test taf to read it in as an included file. I set the value of the 
data to a variable, plug that in to set the DOM, and experiment until I get 
things working properly. Then I deploy the working solution to the regular taf.

I have to admit, I usually do a find and replace on the variable to REMOVE a 
lot of the beginning stuff, which can get in the way. Especially the first 
<?xml line



�� Sent from my iPad Air ��

> On Nov 20, 2013, at 3:18 AM, Wayne Irvine <[email protected]> wrote:
>
> /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.

Reply via email to