This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: escaping from CDATA


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]