GetXMLNode ( XML ; XPath )
Rate this function: Average rating: 3.8 (9 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. |
GetResultParameter( ParameterName ) |
| |
(Wed, Aug 25, 8:32am) |
| 2. |
GetListParameter ( ParameterList ; ParameterName ) |
| |
(Wed, Aug 25, 8:25am) |
| 3. |
Standard_Deviation( Field ; MaxLoopCount ; StartIndex ; StdDeviation ; ArithMeanValue ) |
| |
(Tue, Aug 24, 10:57am) |
| 4. |
Arithmetic_Mean ( Field ; MaxLoopCount ; StartIndex ; MeanValue ) |
| |
(Tue, Aug 24, 10:51am) |
| 5. |
Age ( Birth; theDate; Format ) |
| |
(Fri, Aug 20, 9:50am) |
| 6. |
Power ( x ; y ) |
| |
(Thu, Aug 19, 5:56am) |
| 7. |
portal.rowCount ( _name ) |
| |
(Sun, Aug 15, 2:41pm) |
| 8. |
PostPer_Day ( Post; startDate ; finishDate ; returnType ) |
| |
(Sat, Aug 14, 2:02pm) |
 |
|
Trailing section of example is incorrect, <class> should be </class>
Bruce Robertson, Redmond WA
February 16, 2009 1:49pm