Results 1 to 1 of 1
- 11-07-2008, 01:11 PM #1
Member
- Join Date
- Nov 2008
- Posts
- 1
- Rep Power
- 0
How to create new XML file using retreived XML content by using SAX API?
hi all,
* How to create new XML file using retreived XML content by using SAX ?
* I have tried my level best, but output is coming invalid format, my code is follows,
XMLFileParser.java class :-
CreateXMLFile.java class :-Java Code:import java.io.StringReader; import java.io.StringWriter; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.sax.SAXSource; import javax.xml.transform.sax.SAXTransformerFactory; import javax.xml.transform.sax.TransformerHandler; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.xml.sax.Attributes; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.helpers.XMLFilterImpl; public class PdfParser extends XMLFilterImpl { private TransformerHandler handler; Document meta_data; private StringWriter meta_data_text = new StringWriter(); public void startDocument() throws SAXException { } void startValidation() throws SAXException { StreamResult streamResult = new StreamResult(meta_data_text); SAXTransformerFactory factory = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); try { handler = factory.newTransformerHandler(); Transformer transformer = handler.getTransformer(); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); handler.setResult(streamResult); handler.startDocument(); } catch (TransformerConfigurationException tce) { System.out.println("Error during the parse :"+ tce.getMessageAndLocation()); } super.startDocument(); } public void startElement(String namespaceURI, String localName, String qualifiedName, Attributes atts) throws SAXException { handler.startElement(namespaceURI, localName, qualifiedName, atts); super.startElement(namespaceURI, localName, qualifiedName, atts); } public void characters(char[] text, int start, int length) throws SAXException { handler.characters(text, start, length); super.characters(text, start, length); } public void endElement(String namespaceURI, String localName, String qualifiedName) throws SAXException { super.endElement("", localName, qualifiedName); handler.endElement("", localName, qualifiedName); } public void endDocument() throws SAXException { } void endValidation() throws SAXException { handler.endDocument(); try { TransformerFactory transfactory = TransformerFactory.newInstance(); Transformer trans = transfactory.newTransformer(); SAXSource sax_source = new SAXSource(new InputSource(new StringReader(meta_data_text.toString()))); DOMResult dom_result = new DOMResult(); trans.transform(sax_source, dom_result); meta_data = (Document) dom_result.getNode(); System.out.println(meta_data_text); } catch (TransformerConfigurationException tce) { System.out.println("Error occurs during the parse :"+ tce.getMessageAndLocation()); } catch (TransformerException te) { System.out.println("Error in result transformation :"+ te.getMessageAndLocation()); } } }
Java Code:Sax.startDocument(); Sax.startValidation(); Sax.startElement("", "pdf", "pdf", new AttributesImpl()); Sax.startElement("", "basic-metadata", "basic-metadata", new AttributesImpl()); String xmp_str = new String(meta_data.getByteArray(),"UTF8"); char[] xmp_arr = xmp_str.toCharArray(); Sax.characters(xmp_arr, 0, xmp_arr.length); Sax.endElement("", "pdf", "pdf"); Sax.endValidation(); Sax.endDocument(); Sax.endElement("", "basic-metadata", "basic-metadata");
* In CreateXMLFile.java
class, I have retreived the xml content in the meta_data object, after that i have converted into character array and this will be sends to SAX
* In this case , the XML file created successfully but the retreived XML content added as an text in between basic-metadata Element, that is, retreived XML content
is not an XML type text, it just an Normal text Why that ?
* Please help me what is the problem in my code?
Cheers,
JavaImran
Similar Threads
-
How to create a file
By Alpha in forum New To JavaReplies: 7Last Post: 01-06-2012, 07:10 PM -
How can I save the content of textfield in a text file?
By fred in forum Java AppletsReplies: 7Last Post: 08-17-2010, 06:00 PM -
How to get the content of text file to write in JTextArea?
By realahmed8 in forum New To JavaReplies: 10Last Post: 05-24-2010, 08:25 PM -
How to load binary content of a .class file
By boy22 in forum Advanced JavaReplies: 1Last Post: 08-03-2007, 06:21 PM


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks