Win a copy of TDD for a Shopping Website LiveProject this week in the Testing forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Paul Clapham
  • Ron McLeod
  • Jeanne Boyarsky
  • Tim Cooke
Sheriffs:
  • Liutauras Vilda
  • paul wheaton
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Tim Holloway
  • Stephan van Hulst
  • Carey Brown
  • Frits Walraven
Bartenders:
  • Piet Souris
  • Himai Minh

how to ignore whitespace in xml

 
Ranch Hand
Posts: 86
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi!Experts
Im trying to parse a xml file using JAXP.In the application im also using xpath to find and traverse the xml file.
The probelm is that the method setIgnoringElementContentWhitespace()is not working.

Here is the code....
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse(docFile);
Element root = doc.getDocumentElement();
Node configNode = root.getFirstChild();
System.out.println(configNode);
NodeList childNodes = configNode.getChildNodes();
System.out.println("There are "+childNodes.getLength()
+" nodes in this document.");
for (int childNum = 0;childNum < childNodes.getLength();childNum++)
{
if ( childNodes.item(childNum).getNodeType() == Node.ELEMENT_NODE )
{
Element child = (Element) childNodes.item( childNum ) ;
if ( child.getTagName().equals( "header" ) )
{
// Do something with the header
System.out.println("Got a header!");
System.out.println("Header contents:" +
getTextContents( childNodes.item( childNum ) ) );
}
}
}

This is my xml file
<sample><config>
<userid>Jack</userid>
<password>secret</password>
<header>reroute
other
<b>Random</b> text.</header>
<location>California</location>
</config></sample>

But when I change the xml file to sumething like this....
<sample>
<config>
<userid>Jack</userid>
<password>secret</password>
<header>reroute other<b>Random</b>text.</header>
<location>California</location>
</config>
</sample>
Im getting following error
[sample: null]
[#text:
]
There are 0 nodes in this document.
Now, using the helper function findValue:
reroute othertext.
so, childNodes.getLength() is giving me o nodes when the xml form changes.

Even after using dbf.setIgnoringElementContentWhitespace(true);

Can any one plz tel me how to ignore the whitespace in the xml file.
If possible plz give a code snippet.
Many thanks in advance
Regards
Ved Gunjan
 
author
Posts: 11962
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'd suggest trying to make your code adapt to situations where you might encounter Text nodes in between Element nodes.
 
Eliminate 95% of the weeds in your lawn by mowing 3 inches or higher. Then plant tiny ads:
Free, earth friendly heat - from the CodeRanch trailboss
https://www.kickstarter.com/projects/paulwheaton/free-heat
reply
    Bookmark Topic Watch Topic
  • New Topic