You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by "Michael Glavassevich (JIRA)" <xe...@xml.apache.org> on 2009/11/22 19:41:39 UTC
[jira] Updated: (XERCESJ-1361) DOMParserImpl repeatedly overwrites
text node child of an element (rather than appending) when there are
multiple text nodes in input
[ https://issues.apache.org/jira/browse/XERCESJ-1361?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Glavassevich updated XERCESJ-1361:
------------------------------------------
Fix Version/s: 2.10.0
> DOMParserImpl repeatedly overwrites text node child of an element (rather than appending) when there are multiple text nodes in input
> -------------------------------------------------------------------------------------------------------------------------------------
>
> Key: XERCESJ-1361
> URL: https://issues.apache.org/jira/browse/XERCESJ-1361
> Project: Xerces2-J
> Issue Type: Bug
> Components: DOM (Level 3 Load & Save)
> Affects Versions: 2.9.1
> Environment: Linux
> Reporter: Joe James Fenton
> Assignee: Michael Glavassevich
> Fix For: 2.10.0
>
>
> If there are multiple text node children on an element (which, in this case given below, results from filtering elements during parsing) then the
> element in the DOM on output contains only the final text node:
> Demonstration code:
> //////////////////////////////////
> package test;
> import junit.framework.TestCase;
> import org.w3c.dom.Document;
> import org.w3c.dom.Element;
> import org.w3c.dom.Node;
> import org.w3c.dom.ls.LSParserFilter;
> import org.w3c.dom.traversal.NodeFilter;
> import com.sun.org.apache.xerces.internal.parsers.DOMParserImpl;
> public class TestBug extends TestCase {
> private static final String EXAMPLE_NS = "http://www.example.com";
> public void testFilteringSiblingTextNodes() throws Exception {
> final DOMParserImpl parser = new DOMParserImpl("com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration", "http://www.w3.org/2001/XMLSchema");
> parser.setFilter(new LSParserFilter() {
> public short acceptNode(final Node nodeArg) {
> return LSParserFilter.FILTER_ACCEPT;
> }
> public int getWhatToShow() {
> return NodeFilter.SHOW_ALL;
> }
> public short startElement(final Element elementArg) {
> if (EXAMPLE_NS.equals(elementArg.getNamespaceURI())) {
> return LSParserFilter.FILTER_ACCEPT;
> }
> else {
> return LSParserFilter.FILTER_SKIP;
> }
> }
> });
> final Document document = parser.parseURI(getClass().getResource("input.xml").toString());
> assertEquals("List:1)Item 1,2)Item 2.", document.getElementsByTagNameNS(EXAMPLE_NS, "foo").item(0).getTextContent());
> }
> }
> /////////////////////////////////
> resource "input.xml"
> <html xmlns='http://www.w3.org/1999/xhtml' xmlns:ex='http://www.example.com'>
> <ex:foo>List:<br />1)Item 1,<br />2)Item 2.</ex:foo>
> </html>
> /////////////////////////////////////////
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org