[xsl] Retrieve External String XML Data as Object

Subject: [xsl] Retrieve External String XML Data as Object
From: John <john-xsl-list@xxxxxxxx>
Date: Mon, 27 Jun 2005 13:08:40 -0700
I have a data source that is only available through APIs, not through URLs or files. I can represent this external data as XML, but how can I make this data available to my XSL? The document() function seems to require the first parameter be an URL, and the node-set extensions don't seem to handle strings (at least not the Microsoft node-set extensions).

Where custom:GetData() basically returns some XML:

return( "<root><node>some text</node></root>" );

I have tried:

<xsl:variable name="extdata" select="msxsl:node-set( custom:GetData())" />
<xsl:value-of select="$extdata/root/node/text()" />

which gives 'cannot convert the operand to result tree fragment'.

I have also tried:

<xsl:variable name="extdata" select="document( custom:GetData())" />
<xsl:value-of select="$extdata/root/node/text()" />

Which gives no output. Do I have to make the data URL-accessible, or how can I get this XML into my XSLT as an object instead of a string? Should I convert the string to some other type of object before returning it to the XSL? Of course I would prefer to avoid extensions if possible. Hopefully there is something like document() that works on strings instead of URLs?

Current Thread