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