|
Home > Archive > BizTalk Server Orchestration > September 2005 > XPath Loop to extract element value
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
XPath Loop to extract element value
|
|
| Tom Fry 2005-09-13, 6:00 pm |
| I’m having a problem with an XPath statement inside an Orchestration
expression shape. I have the orchestration looping through a batch of
records. I’m trying to us XPath to extract the value of OBJECT_ID (see
sample xml below).
This statement will extract value of “00000000000000000000000000000000”
using the hardcoded index of 1.
XPathResults = xpath(Message_1,
"string(/EC/AA.DATA_ATTRIBUTE[1]/OBJECT_ID/text())");
When I try to replace the hardcoded index of 1 with a variable I get a
return of null.
sXPath=System.String.Format("/EC/AA.DATA_ATTRIBUTE[{0}]/OBJECT_ID/text()",nLoopCount);
XPathResults2 = xpath(Message_1, sXPath);
I’ve set a break point and checked the value of sXPath. It looks identical
to my fist sample.
I’ve also tried(among others) . Null is returned.
XPathResults2 = xpath(Message_1, string”(sXPath)”);
Any suggestions?
<?xml version="1.0"?>
<EC>
<AA.DATA_ATTRIBUTE>
<OBJECT_ID>00000000000000000000000000000000</OBJECT_ID>
</AA.DATA_ATTRIBUTE>
<AA.DATA_ATTRIBUTE>
<OBJECT_ID>00000000000000000000000000000001</OBJECT_ID>
</AA.DATA_ATTRIBUTE>
<AA.DATA_ATTRIBUTE>
<OBJECT_ID>00000000000000000000000000000002</OBJECT_ID>
</AA.DATA_ATTRIBUTE>
<AA.DATA_ATTRIBUTE>
<OBJECT_ID>00000000000000000000000000000003</OBJECT_ID>
</AA.DATA_ATTRIBUTE>
<AA.DATA_ATTRIBUTE>
<OBJECT_ID>00000000000000000000000000000004</OBJECT_ID>
</AA.DATA_ATTRIBUTE>
<AA.DATA_ATTRIBUTE>
<OBJECT_ID>00000000000000000000000000000005</OBJECT_ID>
</AA.DATA_ATTRIBUTE>
<AA.DATA_ATTRIBUTE>
<OBJECT_ID>00000000000000000000000000000006</OBJECT_ID>
</AA.DATA_ATTRIBUTE>
<AA.DATA_ATTRIBUTE>
<OBJECT_ID>00000000000000000000000000000007</OBJECT_ID>
</AA.DATA_ATTRIBUTE>
<AA.DATA_ATTRIBUTE>
<OBJECT_ID>00000000000000000000000000000008</OBJECT_ID>
</AA.DATA_ATTRIBUTE>
<AA.DATA_ATTRIBUTE>
<OBJECT_ID>00000000000000000000000000000009</OBJECT_ID>
</AA.DATA_ATTRIBUTE>
</EC>
| |
| Scott Colestock 2005-09-14, 5:52 pm |
| Sorry to suggest something obvious, but are you accidentally starting
nLoopCount at the value zero ?
(It needs to be 1-relative)
Scott Colestock
www.traceofthought.net
"Tom Fry" <Tom4writer@DontSpamMe_yahoo.com> wrote in message
news:0BC8D862-7490-4C58-BF85-854ADBF22A0E@microsoft.com...
> I'm having a problem with an XPath statement inside an Orchestration
> expression shape. I have the orchestration looping through a batch of
> records. I'm trying to us XPath to extract the value of OBJECT_ID (see
> sample xml below).
>
>
> This statement will extract value of "00000000000000000000000000000000"
> using the hardcoded index of 1.
> XPathResults = xpath(Message_1,
> "string(/EC/AA.DATA_ATTRIBUTE[1]/OBJECT_ID/text())");
>
>
> When I try to replace the hardcoded index of 1 with a variable I get a
> return of null.
> sXPath=System.String.Format("/EC/AA.DATA_ATTRIBUTE[{0}]/OBJECT_ID/text()",nLoopCount);
> XPathResults2 = xpath(Message_1, sXPath);
>
> I've set a break point and checked the value of sXPath. It looks
> identical
> to my fist sample.
>
> I've also tried(among others) . Null is returned.
> XPathResults2 = xpath(Message_1, string"(sXPath)");
>
>
> Any suggestions?
>
>
>
> <?xml version="1.0"?>
> <EC>
> <AA.DATA_ATTRIBUTE>
> <OBJECT_ID>00000000000000000000000000000000</OBJECT_ID>
> </AA.DATA_ATTRIBUTE>
> <AA.DATA_ATTRIBUTE>
> <OBJECT_ID>00000000000000000000000000000001</OBJECT_ID>
> </AA.DATA_ATTRIBUTE>
> <AA.DATA_ATTRIBUTE>
> <OBJECT_ID>00000000000000000000000000000002</OBJECT_ID>
> </AA.DATA_ATTRIBUTE>
> <AA.DATA_ATTRIBUTE>
> <OBJECT_ID>00000000000000000000000000000003</OBJECT_ID>
> </AA.DATA_ATTRIBUTE>
> <AA.DATA_ATTRIBUTE>
> <OBJECT_ID>00000000000000000000000000000004</OBJECT_ID>
> </AA.DATA_ATTRIBUTE>
> <AA.DATA_ATTRIBUTE>
> <OBJECT_ID>00000000000000000000000000000005</OBJECT_ID>
> </AA.DATA_ATTRIBUTE>
> <AA.DATA_ATTRIBUTE>
> <OBJECT_ID>00000000000000000000000000000006</OBJECT_ID>
> </AA.DATA_ATTRIBUTE>
> <AA.DATA_ATTRIBUTE>
> <OBJECT_ID>00000000000000000000000000000007</OBJECT_ID>
> </AA.DATA_ATTRIBUTE>
> <AA.DATA_ATTRIBUTE>
> <OBJECT_ID>00000000000000000000000000000008</OBJECT_ID>
> </AA.DATA_ATTRIBUTE>
> <AA.DATA_ATTRIBUTE>
> <OBJECT_ID>00000000000000000000000000000009</OBJECT_ID>
> </AA.DATA_ATTRIBUTE>
> </EC>
>
|
|
|
|
|