[jdom-interest] XMLOutputter

J. Albers jalbers at cs.uu.nl
Thu Feb 12 05:09:38 PST 2004


> You have a bunch of problems ....
>
> Firstly, white-space in XML has no meaning unless specifically requested
> (xml:space="preserve"). Thus, the following two XML documents are
> equivalent:
> <root><element>text</element></root>
> and
> <root>
>   <element>text</element>
> </root>
>
> Secondly, the two documents you have printed in your mail are not
> equivalent. The <gui3> element in the first document has no content, but
has
> <window-manager> in the second. So, your code is not actually adding the
> <window-manager> element to the <gui3> element, but to the <linux>
element.

I am aware of this, but have yet to figure out how to fix this...





> As for pretty-printing the XML, try using
>   new XMLOutputter("  ",true).outputString(doc)
> if you are beta 9 or earlier, and
>   new XMLOutputter(Format.getPrettyFormat()).outputString(doc)
> if you are using Beta 10.
>
> Finally, the <?xml version="1.0" encoding="UTF-8"?> line is just fine.
Leave
> it there!
>
> Rolf
>
> -----Original Message-----
> From: jdom-interest-admin at jdom.org
> [mailto:jdom-interest-admin at jdom.org]On Behalf Of J. Albers
> Sent: Thursday, February 12, 2004 7:46 AM
> To: jdom-interest at jdom.org
> Subject: [jdom-interest] XMLOutputter
>
>
> Hi,
>
> I got a bit of a problem, i'm using XMLOutputter to let my application put
> some manipulated XML elements in the output in an XML format. But the
> problem is i just get it in 1 line like:
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <linux><gui3></gui3><window-manager></window
>
manager><type>java</type><name>Enlightenment</name><version3>0.16.2</version
> 3><gui></gui><window-manager></window
> manager><name>Enlightenment</name><version1>0.16.2</version1></linux>
>
>
> All info i need is there, but not formatted right... it should be :
> <linux>
>  <gui3>
>     <window-manager>
>       <type>java</type>
>       <name>Enlightenment</name>
>       <version3>0.16.2</version3>
>     </window-manager>
>   </gui3>
>   <gui>
>     <window-manager bla="2">
>       <name>Enlightenment</name>
>       <version1>0.16.2</version1>
>     </window-manager>
>   </gui>
> </linux>
>
>
> Anyone here know what's wrong?
>
> Thanks, Joachim.
>
> --------------------------------------------------------------------------
--
> ------
>
> private static void compareChildren(Element element1, Element element2,
> Document doc, Element root)
>  {
>  List children1 = element1.getChildren();
>  List children2 = element2.getChildren();
>  if(children1.size() > children2.size())// lijst 2 moet de grootste zijn.
>  {
>    children1 = element2.getChildren();
>    children2 = element1.getChildren();
>  }
>  if(children1.size() > 0 &&  children2.size() > 0)
>  System.out.println("Elements are "+ getSamePercentage(children1,
> children2)+" % the same.");
>
>  //Element child = new Element("shit");
>
>  for (int i=0; (i < (children1.size())); i++)
>  {
>     if((children1.get(i).toString()).equals(children2.get(i).toString()))
>     {
>      System.out.println(children1.get(i)+" and1 "+children2.get(i)+" are
the
> same.");
>   //printStuff((Element)children1.get(i), doc, root);
>   Element childname = (Element)children1.get(i);
>   Element child = new Element(""+childname.getName());
>   String text = childname.getTextNormalize();
>    //if((text != null) && (!text.equals(""))){
>    child.addContent(text);
>   //}
>   root.addContent(child);
>   compareChildren(((Element) children1.get(i)), ((Element)
> children2.get(i)), doc, root);
>     }
>     else
>     {
>    for (int j=1; (j < (children2.size()));j++)
>    {
>     if(
(children1.get(i).toString()).equals((children2.get(j).toString())))
>     {
>      System.out.println(children1.get(i)+" and2 "+children2.get(j)+" are
the
> same.");
>      //printStuff((Element)children1.get(i), doc, root);
>      Element childname = (Element)children1.get(i);
>      Element child = new Element(""+childname.getName());
>      String text = childname.getTextNormalize();
>      // if((text != null) && (!text.equals(""))){
>       child.addContent(text);
>      //}
>      root.addContent(child);
>      compareChildren(((Element) children1.get(i)), ((Element)
> children2.get(j)),doc, root);
>     }
>       }
>     }
>
>  }
>  try{
>   result.output.setText(new XMLOutputter().outputString(doc));
>  }
>  catch (Exception e) {e.printStackTrace();}
>    }
>
> _______________________________________________
> To control your jdom-interest membership:
>
http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhos
> t.com
> _______________________________________________
> To control your jdom-interest membership:
>
http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhost.com
>




More information about the jdom-interest mailing list