Re: [xsl] escaping from CDATA

Subject: Re: [xsl] escaping from CDATA
From: Johannes Döbler <jd@xxxxxxxxxxxxxx>
Date: Thu, 25 Oct 2001 15:53:46 +0200
Assumed you want to access the XML fragment as XML and not as string, then you could implement a URIResolver which receveives the xml fragment and turn it into a Source object (expressed in Java and TrAX-terms).

If the CDATA-Textnode is the current node, then use the following XPath expression

document(concat('fragment:', .))

to access the fragment string as document.
The URIResolver (which is invoked when document() is called) could be implemented like this:


public javax.xml.transform.Source resolve(String href, String base)
{
if (href.startsWith("fragment:"))
{
String fragment = href.substring("fragment:".length());
return new javax.xml.transform.stream.StreamSource(new java.io.StringReader(fragment));
}
else
return null;
}



Cheers, Johannes


I have some valid xml embedded in a CDATA section:

<![CDATA[<element attr="100"><a>100</a><b>200</b></element>]]>

I don't control the source XML so I just have to accept this.
My question is how I can access the XML fragment inside the
CDATA section. THankx



XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread