[ 
https://issues.apache.org/jira/browse/XERCESJ-1361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12680446#action_12680446
 ] 

Chris Simmons commented on XERCESJ-1361:
----------------------------------------

Thanks.  We're actually using our own repackaged version of Xerces, the com.sun 
stuff was just confusion.

I've found that we have to use the (repackaged) Xerces implementation directly 
as there's no way of getting line/column information for the elements using the 
DOM api's AFAIK.  I'd be glad to be corrected if I'm wrong though!

> 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
>
> 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to