On Tuesday, January 14, 2003, at 02:34 PM, Mike Brown wrote:
S Woodside wrote:
I want to "save" a context, e.g., when I'm in a specific context node,
I want to be able to serialize the context node such that I can pass
that serialization as a string or what not, to another XSLT that
processes the same original XML. Then I could simply
select="deserialize(myserializedString)" and jump to the same node.
Assuming the XML hasn't changed.
[...]
You're right, there's no easy way.
Serializing a node tree into an XML string is something that most XSLT
processors can do via an extension function (though you may have to
write it
yourself), and it's also possible to do "manually" with pure XSLT, as
demonstrated by Evan Lenz at http://www.xmlportfolio.com/xml-to-string/
Fortunately, I only want to serialize an XPath expression, not the XML
subtree. I think Dimitre's code does that.
Deserializing an XML string back into a node-set will definitely
require an
extension function, because you need to run it through a real XML
parser and
construct whatever DOM-like structure the vendor's implementation
requires.
But if it's just an XPath expression ...?
Simon
You can't reliably send serialized XML embedded in HTML form data
unless you
use the multipart/form-data format (as is done for file uploads), and
even
then, there is some risk. It is partly for this reason that things
like SOAP
exist. Two years ago, I did a little writeup discussing the issues
involved;
see http://skew.org/xml/misc/xml_vs_http/
Mike
--
Mike J. Brown | http://skew.org/~mike/resume/
Denver, CO, USA | http://skew.org/xml/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
---
anti-spam: do not post this address publicly
www.simonwoodside.com -- 99% Devil, 1% Angel
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list