[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: How to: Returning HTML Elements From a Saxon Exten
W. Eliot Kimber wrote:
W. Eliot Kimber wrote: My analysis is correct--turns out one of my collegues had already figured this out and I didn't know it. What I had missed was the the "Parse()" method on the Saxon DocumentBuilderImpl class, which allows you to pass in a string to be parsed more or less directly. Here's the basic pattern: I discovered it's not quite so simple because the byte array you get from String.getBytes() is a UTF-16 byte sequence, but Aelfred (which Saxon uses in it's DocumentBuilderImpl) only handles UTF-8, so you have to convert the Java UTF-16 string to a UTF-8 byte array, which I did like so: public NodeInfo generateMarkup(String markupString) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); OutputStreamWriter osw = null; // NOTE: the following exceptions should never happen, // so there's no point in trapping them. try { osw = new OutputStreamWriter(baos, "UTF-8"); } catch (UnsupportedEncodingException e2) { e2.printStackTrace(); } try { osw.write(markupString); } catch (IOException e3) { e3.printStackTrace(); } try { osw.flush(); osw.close(); } catch (IOException e4) { e4.printStackTrace(); } ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); InputSource isource = new InputSource(bais); Document root = null; try { root = new DocumentBuilderImpl().parse(isource); } catch (SAXException e1) { e1.printStackTrace(); } return (NodeInfo)(root.getDocumentElement()); } -- W. Eliot Kimber, eliot@xxxxxxxxxx Consultant, ISOGEN International 1016 La Posada Dr., Suite 240 Austin, TX 78752 Phone: 512.656.4139 XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|