[OT] Users (was RE: Naive XML questions)

2020-10-26 Thread Ralph DiMola via use-livecode
We did a off-the-street user test in NYC for a major bank in 1985. There were 
10 or 20 tasks. Among other things some options were selected using F1, F2, 
Fn... keys. Most participants type the "F" key followed by the "1" key even 
though the "F" keys were separated at the top of the keyboard just like today. 
After we were finished being flabbergasted we regrouped and listened to the 
testers and changed the design.

Ralph DiMola
IT Director
Evergreen Information Services
rdim...@evergreeninfo.net

-Original Message-
From: use-livecode [mailto:use-livecode-boun...@lists.runrev.com] On Behalf Of 
Graham Samuel via use-livecode
Sent: Monday, October 26, 2020 10:46 AM
To: How to use LiveCode
Cc: Graham Samuel
Subject: Re: Naive XML questions

Thanks to all who replied, but Ken - you are spot on! I simply had no idea how 
to address an individual node. I am not keen to use any method other than the 
ones which already exist in the XML library, so this is the way for me. 

One can sometimes (often, if I’m honest) be stymied by some very basic lack of 
knowledge. It reminds me vaguely of some consumer tests which were done on (I 
think) early IBM PCs. The researchers wanted to know how the new users got on 
with the machine, how productive it was for them etc, but they soon found that 
the most common issue was how to switch the machine on! In explaining stuff, we 
neglect the basics at our peril.

Graham

> On 25 Oct 2020, at 23:29, Ken Ray  wrote:
> 
> Graham, here's the basic approach (assuming your XML is in the variable 
> 'tXML'):
> 
>   put revXMLCreateTree(tXML,false,true,false) into tTreeID
>   put  "/gpx/trk/trkseg/trkpt[1]" into tNode  -- the brackets identify 
> the instance of "trkpt" to work with
>   put revXMLAttribute(tTreeID, tNode,"lon") into tLonValue
>   put revXMLNodeContents(tTreeID,(tNode & "/ele")) into tEleValue
>   put tLonValue && "/" && tEleValue
> 
> >> 2.128369 / 169.623637
> 
> So to work with the third instance of "trkpt", you'd do:
> 
>   put  "/gpx/trk/trkseg/trkpt[3]" into tNode
> 
> Hope this helps,
> 
> Ken
> 
> 
>> On Oct 25, 2020, at 12:21 PM, Graham Samuel via use-livecode 
>> mailto:use-livecode@lists.runrev.com>> wrote:
>> 
>> I feel stupid, but even with Sarah Reichelt’s help, there are very very 
>> simple things I can’t do with the LC XML functions. My current problem is 
>> this:
>> 
>> I have a series of XML files which are in fact .gpx files - a 
>> collection of GPS coordinates representing a route on the Earth’s 
>> surface. There are thousands of files around which I can use as test 
>> data, so I don’t have to roll my own. Taking just one of these 
>> examples, I can do the following in LC
>> 
>> 1. Get the user to find the file and download it
>> 
>> 2. Check it’s a .gpx file
>> 
>> 3. Turn it into an LC XML data structure with an integer ID
>> 
>> 4. Find out how many child nodes there are.
>> 
>> Then it all goes wrong, because I don’t seem to be able to address the 
>> individual nodes. This is obviously needed for further progress, in 
>> functions like revXMLFirstChild  and revXMLNodeContents.
>> 
>> I just don’t know what format to use. Sarah’s tutorial doesn’t help because 
>> her data structure is too simplified.
>> 
>> If you’re still with me, this is what the beginning of a typical file looks 
>> like:
>> 
>>>  >> xmlns="http://www.topografix.com/GPX/1/1 
>>> <http://www.topografix.com/GPX/1/1>" creator="Digital Crow" 
>>> version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance 
>>> <http://www.w3.org/2001/XMLSchema-instance>" 
>>> xsi:schemaLocation="http://www.topografix.com/GPX/1/1 
>>> <http://www.topografix.com/GPX/1/1> 
>>> http://www.topografix.com/GPX/1/1/gpx.xsd 
>>> <http://www.topografix.com/GPX/1/1/gpx.xsd>">
>>> 
>>> 
>>>   
>> 
>>>  169.623637 
>>> 
>> 
>>>  169.744722 
>>> 
>> 
>>>  169.744722 
>>> 
>> 
>>>  169.266626 
>>> 
>>> 
>> etc - there may sometimes be thousands of these “trkpt” elements.
>> 
>> So, suppose I want to get the first instance of the “lon” attribute into a 
>> local variable. How do I address the first  node etc in order to do it? 
>> I have attempted various common-sense methods, but none work.
>> 
>> This must be child’s play to a lot of people, just not m

Re: Naive XML questions

2020-10-26 Thread Graham Samuel via use-livecode
Thanks to all who replied, but Ken - you are spot on! I simply had no idea how 
to address an individual node. I am not keen to use any method other than the 
ones which already exist in the XML library, so this is the way for me. 

One can sometimes (often, if I’m honest) be stymied by some very basic lack of 
knowledge. It reminds me vaguely of some consumer tests which were done on (I 
think) early IBM PCs. The researchers wanted to know how the new users got on 
with the machine, how productive it was for them etc, but they soon found that 
the most common issue was how to switch the machine on! In explaining stuff, we 
neglect the basics at our peril.

Graham

> On 25 Oct 2020, at 23:29, Ken Ray  wrote:
> 
> Graham, here's the basic approach (assuming your XML is in the variable 
> 'tXML'):
> 
>   put revXMLCreateTree(tXML,false,true,false) into tTreeID
>   put  "/gpx/trk/trkseg/trkpt[1]" into tNode  -- the brackets identify 
> the instance of "trkpt" to work with
>   put revXMLAttribute(tTreeID, tNode,"lon") into tLonValue
>   put revXMLNodeContents(tTreeID,(tNode & "/ele")) into tEleValue
>   put tLonValue && "/" && tEleValue
> 
> >> 2.128369 / 169.623637
> 
> So to work with the third instance of "trkpt", you'd do:
> 
>   put  "/gpx/trk/trkseg/trkpt[3]" into tNode
> 
> Hope this helps,
> 
> Ken
> 
> 
>> On Oct 25, 2020, at 12:21 PM, Graham Samuel via use-livecode 
>> mailto:use-livecode@lists.runrev.com>> wrote:
>> 
>> I feel stupid, but even with Sarah Reichelt’s help, there are very very 
>> simple things I can’t do with the LC XML functions. My current problem is 
>> this:
>> 
>> I have a series of XML files which are in fact .gpx files - a collection of 
>> GPS coordinates representing a route on the Earth’s surface. There are 
>> thousands of files around which I can use as test data, so I don’t have to 
>> roll my own. Taking just one of these examples, I can do the following in LC
>> 
>> 1. Get the user to find the file and download it
>> 
>> 2. Check it’s a .gpx file
>> 
>> 3. Turn it into an LC XML data structure with an integer ID
>> 
>> 4. Find out how many child nodes there are.
>> 
>> Then it all goes wrong, because I don’t seem to be able to address the 
>> individual nodes. This is obviously needed for further progress, in 
>> functions like revXMLFirstChild  and revXMLNodeContents.
>> 
>> I just don’t know what format to use. Sarah’s tutorial doesn’t help because 
>> her data structure is too simplified.
>> 
>> If you’re still with me, this is what the beginning of a typical file looks 
>> like:
>> 
>>> 
>>> http://www.topografix.com/GPX/1/1 
>>> " creator="Digital Crow" version="1.0" 
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance 
>>> " 
>>> xsi:schemaLocation="http://www.topografix.com/GPX/1/1 
>>>  
>>> http://www.topografix.com/GPX/1/1/gpx.xsd 
>>> ">
>>> 
>>> 
>>>   
>> 
>>> 
>>> 169.623637 
>> 
>>> 
>>> 169.744722 
>> 
>>> 
>>> 169.744722 
>> 
>>> 
>>> 169.266626 
>>> 
>> etc - there may sometimes be thousands of these “trkpt” elements.
>> 
>> So, suppose I want to get the first instance of the “lon” attribute into a 
>> local variable. How do I address the first  node etc in order to do it? 
>> I have attempted various common-sense methods, but none work.
>> 
>> This must be child’s play to a lot of people, just not me.
>> 
>> Hoping for some guidance.
>> 
>> Graham
>> ___
>> use-livecode mailing list
>> use-livecode@lists.runrev.com 
>> Please visit this url to subscribe, unsubscribe and manage your subscription 
>> preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> Ken Ray
> Sons of Thunder Software, Inc.
> Email: k...@sonsothunder.com 
> Website: https://www.sonsothunder.com
> 
> 
> 
> 

___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


Re: Naive XML questions

2020-10-25 Thread Alex Tweedly via use-livecode

On 25/10/2020 18:51, Bernard Devlin via use-livecode wrote:


In his reply to you I think Alex is suggesting you use the handlers that
come with the  Datagrid.  These can convert xml to a LC array.  You might
find it easier just to deal with a familair data structure rather than
learn XML.

I found them here: http://revonline2.runrev.com/stack/571/XMLAndArrays

But the handlers are also to be found inside the datagrid library in the
IDE (I suspect they are more up to date).


Or indeed on Trevor's GitHub page, which is where I could vaguely 
remember having seen them.


But wherever you get them from, they do provide a (fairly 
straightforward) familiar interface of a LC array.


(And give us yet another reason to say "thank you" to Trevor :-)

Alex.



___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


Re: Naive XML questions

2020-10-25 Thread Ken Ray via use-livecode
Graham, here's the basic approach (assuming your XML is in the variable 'tXML'):

put revXMLCreateTree(tXML,false,true,false) into tTreeID
put  "/gpx/trk/trkseg/trkpt[1]" into tNode  -- the brackets identify 
the instance of "trkpt" to work with
put revXMLAttribute(tTreeID, tNode,"lon") into tLonValue
put revXMLNodeContents(tTreeID,(tNode & "/ele")) into tEleValue
put tLonValue && "/" && tEleValue

>> 2.128369 / 169.623637

So to work with the third instance of "trkpt", you'd do:

put  "/gpx/trk/trkseg/trkpt[3]" into tNode

Hope this helps,

Ken


> On Oct 25, 2020, at 12:21 PM, Graham Samuel via use-livecode 
>  wrote:
> 
> I feel stupid, but even with Sarah Reichelt’s help, there are very very 
> simple things I can’t do with the LC XML functions. My current problem is 
> this:
> 
> I have a series of XML files which are in fact .gpx files - a collection of 
> GPS coordinates representing a route on the Earth’s surface. There are 
> thousands of files around which I can use as test data, so I don’t have to 
> roll my own. Taking just one of these examples, I can do the following in LC
> 
> 1. Get the user to find the file and download it
> 
> 2. Check it’s a .gpx file
> 
> 3. Turn it into an LC XML data structure with an integer ID
> 
> 4. Find out how many child nodes there are.
> 
> Then it all goes wrong, because I don’t seem to be able to address the 
> individual nodes. This is obviously needed for further progress, in functions 
> like revXMLFirstChild  and revXMLNodeContents.
> 
> I just don’t know what format to use. Sarah’s tutorial doesn’t help because 
> her data structure is too simplified.
> 
> If you’re still with me, this is what the beginning of a typical file looks 
> like:
> 
>> 
>> http://www.topografix.com/GPX/1/1; creator="Digital Crow" 
>> version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; 
>> xsi:schemaLocation="http://www.topografix.com/GPX/1/1 
>> http://www.topografix.com/GPX/1/1/gpx.xsd;>
>> 
>> 
>>   
> 
>> 
>> 169.623637 
> 
>> 
>> 169.744722 
> 
>> 
>> 169.744722 
> 
>> 
>> 169.266626 
>> 
> etc - there may sometimes be thousands of these “trkpt” elements.
> 
> So, suppose I want to get the first instance of the “lon” attribute into a 
> local variable. How do I address the first  node etc in order to do it? 
> I have attempted various common-sense methods, but none work.
> 
> This must be child’s play to a lot of people, just not me.
> 
> Hoping for some guidance.
> 
> Graham
> ___
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode

Ken Ray
Sons of Thunder Software, Inc.
Email: k...@sonsothunder.com
Website: https://www.sonsothunder.com




___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


Re: Naive XML questions

2020-10-25 Thread Bernard Devlin via use-livecode
In his reply to you I think Alex is suggesting you use the handlers that
come with the  Datagrid.  These can convert xml to a LC array.  You might
find it easier just to deal with a familair data structure rather than
learn XML.

I found them here: http://revonline2.runrev.com/stack/571/XMLAndArrays

But the handlers are also to be found inside the datagrid library in the
IDE (I suspect they are more up to date).

On Sun, Oct 25, 2020 at 5:22 PM Graham Samuel via use-livecode <
use-livecode@lists.runrev.com> wrote:

> I feel stupid, but even with Sarah Reichelt’s help, there are very very
> simple things I can’t do with the LC XML functions. My current problem is
> this:
>
> I have a series of XML files which are in fact .gpx files - a collection
> of GPS coordinates representing a route on the Earth’s surface. There are
> thousands of files around which I can use as test data, so I don’t have to
> roll my own. Taking just one of these examples, I can do the following in LC
>
> 1. Get the user to find the file and download it
>
> 2. Check it’s a .gpx file
>
> 3. Turn it into an LC XML data structure with an integer ID
>
> 4. Find out how many child nodes there are.
>
> Then it all goes wrong, because I don’t seem to be able to address the
> individual nodes. This is obviously needed for further progress, in
> functions like revXMLFirstChild  and revXMLNodeContents.
>
> I just don’t know what format to use. Sarah’s tutorial doesn’t help
> because her data structure is too simplified.
>
> If you’re still with me, this is what the beginning of a typical file
> looks like:
>
> > 
> > http://www.topografix.com/GPX/1/1; creator="Digital Crow"
> version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;
> xsi:schemaLocation="http://www.topografix.com/GPX/1/1
> http://www.topografix.com/GPX/1/1/gpx.xsd;>
> >  
> >  
> >
>
> > 
> > 169.623637 
>
> > 
> > 169.744722 
>
> > 
> > 169.744722 
>
> > 
> > 169.266626 
> >
> etc - there may sometimes be thousands of these “trkpt” elements.
>
> So, suppose I want to get the first instance of the “lon” attribute into a
> local variable. How do I address the first  node etc in order to do
> it? I have attempted various common-sense methods, but none work.
>
> This must be child’s play to a lot of people, just not me.
>
> Hoping for some guidance.
>
> Graham
> ___
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>
___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


Re: Naive XML questions

2020-10-25 Thread Alex Tweedly via use-livecode
I know nothing about it, so I can feel free to answer:-)

Don’t care about the file format- look at the array format, probably in the 
IDE/debugger. That’s probably going to let you see how to address the 
individual nodes.
Alex

Sent from my iPhone

> On 25 Oct 2020, at 17:21, Graham Samuel via use-livecode 
>  wrote:
> 
> I feel stupid, but even with Sarah Reichelt’s help, there are very very 
> simple things I can’t do with the LC XML functions. My current problem is 
> this:
> 
> I have a series of XML files which are in fact .gpx files - a collection of 
> GPS coordinates representing a route on the Earth’s surface. There are 
> thousands of files around which I can use as test data, so I don’t have to 
> roll my own. Taking just one of these examples, I can do the following in LC
> 
> 1. Get the user to find the file and download it
> 
> 2. Check it’s a .gpx file
> 
> 3. Turn it into an LC XML data structure with an integer ID
> 
> 4. Find out how many child nodes there are.
> 
> Then it all goes wrong, because I don’t seem to be able to address the 
> individual nodes. This is obviously needed for further progress, in functions 
> like revXMLFirstChild  and revXMLNodeContents.
> 
> I just don’t know what format to use. Sarah’s tutorial doesn’t help because 
> her data structure is too simplified.
> 
> If you’re still with me, this is what the beginning of a typical file looks 
> like:
> 
>> 
>> http://www.topografix.com/GPX/1/1; creator="Digital Crow" 
>> version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; 
>> xsi:schemaLocation="http://www.topografix.com/GPX/1/1 
>> http://www.topografix.com/GPX/1/1/gpx.xsd;>
>> 
>> 
>>   
> 
>> 
>> 169.623637 
> 
>> 
>> 169.744722 
> 
>> 
>> 169.744722 
> 
>> 
>> 169.266626 
>> 
> etc - there may sometimes be thousands of these “trkpt” elements.
> 
> So, suppose I want to get the first instance of the “lon” attribute into a 
> local variable. How do I address the first  node etc in order to do it? 
> I have attempted various common-sense methods, but none work.
> 
> This must be child’s play to a lot of people, just not me.
> 
> Hoping for some guidance.
> 
> Graham
> ___
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode


___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode