[ http://issues.apache.org/jira/browse/XERCESJ-1033?page=comments#action_12361303 ]
Nathan Beyer commented on XERCESJ-1033: --------------------------------------- This bug may not be a large issue, but I'm curious if anyone can validate or invalidate it, so it can be closed and/or resolved. Thanks. > Empty CDATA section is not retrievable (child is null) > ------------------------------------------------------ > > Key: XERCESJ-1033 > URL: http://issues.apache.org/jira/browse/XERCESJ-1033 > Project: Xerces2-J > Type: Bug > Components: DOM (Level 3 Core) > Versions: 2.6.2 > Environment: JDK 1.4.2 > Reporter: Detlev Beutner > Attachments: bug_1033_patch.txt > > If a CDATA section is empty, ie <![CDATA[]]>, it is not possible to retrieve > this node (eg by getFirstChild()). Instead, null is returned. > From org.w3c.dom.Node javadoc, getFirstChild() only returns null if there is > *no* child. And if there is a CDATA section child, getNodeValue returns > "content of the CDATA Section", so in this case by > getFirstChild().getNodeValue() an empty string must be returned. In fact, by > this call, a NullPointerException gets thrown. > XML-test-document: > -----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut----- > <test><![CDATA[]]></test> > -----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut----- > Java-test-program: > -----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut----- > import javax.xml.parsers.DocumentBuilder; > import javax.xml.parsers.DocumentBuilderFactory; > import org.w3c.dom.Document; > import org.w3c.dom.Element; > import org.w3c.dom.Node; > public class XercesTester { > public static void main(String[] args) { > try{ > DocumentBuilderFactory factory = > DocumentBuilderFactory.newInstance(); > DocumentBuilder parser = factory.newDocumentBuilder(); > Document doc = parser.parse("c:/test.xml"); > Element testNode = doc.getDocumentElement(); > System.out.println("Test Root Node: " + testNode.getNodeName()); > System.out.println("Node Value of Root Node: " + > testNode.getNodeValue()); > Node cDataNode = testNode.getFirstChild(); > if (cDataNode == null) { > System.out.println("CDATA Node is null - everything stopped, > xml implementation failed!"); > } else { > System.out.println("CDATA Node: " + cDataNode.getNodeName()); > System.out.println("Node Value of CDATA Node: ---" + > cDataNode.getNodeValue() + "---"); > } > } catch (Exception e) { > e.printStackTrace(); > } > } > } > -----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut-----cut----- -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
