Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / July 2007

Tip: Looking for answers? Try searching our database.

Format XML when writing to a file

Thread view: 
pavel.orehov@gmail.com - 17 Jul 2007 07:39 GMT
Hi,

I am saving created XML to a file but when I open the file with
nodepad, for instance, I see all the XML in one line.
It is not well formatted/alignment.
Only when I open it with IExplorer I see it okey.

This is the code of saving:
doc.getDocumentElement().normalize();
DOMSource ds = new DOMSource(doc);
StreamResult sr = new StreamResult(out);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer trans = tf.newTransformer();
trans.transform(ds, sr);

Does anyone knows how should I save the XML to file so that the XML
file will be well formatted ?

Thanks,
Pavel
rossum - 17 Jul 2007 09:43 GMT
>Hi,
>
[quoted text clipped - 16 lines]
>Thanks,
>Pavel
This is probably due to Notepad and Java using different end-of-line
characters.  Try using a different text editor to see if it can
interpret the EoLs correctly.

rossum
evgchech - 17 Jul 2007 10:09 GMT
> On Tue, 17 Jul 2007 06:39:36 -0000, "pavel.ore...@gmail.com"
>
[quoted text clipped - 25 lines]
>
> rossum

   public static String formatIdent(Document xmlNode) throws
IOException {
         StringWriter strWriter = null;
         XMLSerializer probeMsgSerializer = null;
         OutputFormat outFormat = null;
         String identString = null;
         try {
           probeMsgSerializer = new XMLSerializer();
           strWriter = new StringWriter();
           outFormat = new OutputFormat();

           // Setup format settings
           outFormat.setEncoding("UTF-8");
           outFormat.setVersion("1.0");
           outFormat.setIndenting(true);
           // Define a Writer
           probeMsgSerializer.setOutputCharStream(strWriter);
           // Apply the format settings
           probeMsgSerializer.setOutputFormat(outFormat);
           // Serialize XML Document
           probeMsgSerializer.serialize(xmlNode);

           identString = strWriter.toString();
           if(identString.indexOf("\n") != -1){
             identString =
                 identString.substring(
                     identString.indexOf("\n") + 1,
identString.length());
           }
           strWriter.close();

         }
         catch (IOException ioEx) {
           throw new IOException(
               "Failed to format xml document." + ioEx.getMessage());
         }
         return identString;
       }
Real Gagnon - 17 Jul 2007 16:17 GMT
> Hi,
>
[quoted text clipped - 13 lines]
> Does anyone knows how should I save the XML to file so that the XML
> file will be well formatted ?

try this

TransformerFactory tf = TransformerFactory.newInstance();
Transformer trans = tf.newTransformer();
//
trans.setOutputProperty(OutputKeys.METHOD, "xml");
trans.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1");
trans.setOutputProperty
("{http://xml.apache.org/xslt}indent-amount", "4");
trans.setOutputProperty(OutputKeys.INDENT, "yes");
trans.transform(domSource, sr);
//

Bye.
Signature

Real Gagnon  from  Quebec, Canada
* Java, Javascript, VBScript and PowerBuilder code snippets
* http://www.rgagnon.com/howto.html
* http://www.rgagnon.com/bigindex.html



Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.