GetXMLNode ( XML ; XPath )
Rate this function: Average rating: 3.4 (18 votes) Discuss this Custom Function
Michael Wallace, Richard Carlton Consulting
http://www.rcconsulting.com
Navigate XML tree and return results using XPath type functionality (Nonrecursive)
Sample Input:
XMLfield is set to:
<class><student>Bill</student><student>Sue</student><class>
GetXMLNode ( XMLfield ; "/class[1]/student[1]" ) & "¶" &
GetXMLNode ( XMLfield ; "/class[1]/student[2]" ) |
|
Sample Output:
|
Description:
Navigate XML tree and return results using XPath type functionality.
Parameter Description
XML - vanilla xml imput without attributes
XPath - basic XPath like syntax consiting of a series of xml nodes formatted as follows:
/nodeName[instanceNumber]
Requires ExtractData ( XML ; Attribute ; Instance ) by Andy Knasinski of NRG Software which can be found at http://www.briandunning.com/cf/1
Thanks to Andy for the great base function!
This function is not recursive. It simply creates multiple nested instances of GetXMLData in a calculation string and then evaluates it to get the data.
*************
EXAMPLE USE
*************
XMLfield is set to:
<class>
<teacher>
<name>Kelly</name>
</teacher>
<students>
<student>
<name>Bill</name>
<age>15</age>
</student>
<student>
<name>Sue</name>
<age>16</age>
</student>
</students>
<class>
GetXMLNode ( XMLfield ; "/class[1]/teacher[1]/name[1]" ) & "¶" &
GetXMLNode ( XMLfield ; "/class[1]/students[1]/student[2]/age[1]" ) & "¶" &
GetXMLNode ( XMLfield ; "/class[1]/students[1]/student[1]" )
Will produce the following:
Kelly
16
<name>Bill</name><age>15</age>
Note: these functions are not guaranteed
or supported by BrianDunning.com. Please contact the individual
developer with any questions or problems.
This is my Custom Function and I want to
edit it
Discuss:Make a comment about this Custom Function (please try to keep it brief & to the point). Anyone can post:
|
Newest Custom Functions:
| 1. |
phpArrayValue ( array ; key ; pos ) |
| |
(Fri, Jan 27, 1:49pm) |
| 2. |
solfm_timeToMinutes (theTime;roundSec) |
| |
(Fri, Jan 20, 6:26am) |
| 3. |
filterLines(filterField;filterValue;Result) |
| |
(Sat, Jan 14, 2:20pm) |
| 4. |
getMaxValue ( theList ) |
| |
(Thu, Jan 12, 1:06pm) |
| 5. |
MiddleWordsIncPunct ( text ; startingWord ; numberOfWords ) |
| |
(Sat, Jan 07, 9:16am) |
| 6. |
WindowInfo |
| |
(Fri, Jan 06, 12:39pm) |
| 7. |
CenterWindow in Window vert horiz (demension) |
| |
(Fri, Jan 06, 12:25pm) |
| 8. |
UTF8_to_TXT ( Text , Platform ) |
| |
(Wed, Dec 28, 10:44pm) |
 |
|
Trailing section of example is incorrect, <class> should be </class>
Bruce Robertson, Redmond WA
February 16, 2009 1:49pm