Win a copy of Kotlin in Action this week in the Kotlin forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

XML Encoding problem  RSS feed

Jonathan Gerrish
Posts: 24
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Having trouble with encoding related to an XML translation, the XML comes to me as a byte array, its encoded using extended latin. I think the following code should work, I set the encoding where I can, both on the creation of the input source, and prior to the transformation, however, the transformation does not work. (Output is just the header XML line)

InputSource dteInputSource =
new InputSource(new ByteArrayInputStream(contents[1].getBytes()));

Property outputProps = new Properties();
props.setProperty(OutputKeys.ENCODING, "ISO-8859-1");
transformer.transform( xslName, new SAXSource(dteInputSource),
new StreamResult(oagWriter), props);

However, when I preform the same transformation, but reading the input as a file: -

InputSource dteInputSource =
new InputSource(new FileInputStream("myInput.xml"));

The transformation works as expected. The transformer reference is a wrapper class for JAXP Transformer and I am sure this is OK, I think the problem is to do with how I am trying to encode the byte stream.

Can anyone shed some light on this for me?

Many thanks, Jonathan.
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!