There seems to be something fishy with the entity handling in dom4j1.2 with
newest Xerces-2.0.0.  You can test with Java code below, and the XML files
attached (run 'java test.Broked test.xml').  Here's the output I get (it's
returning the entity!?)
unixPrompt> java test.Broked test.xml
Found node: &LmInclude; there
Found node: hello world

Where here's what I would expect:
unixPrompt> java test.Broked test.xml
Found node: hi there
Found node: hello world

Files below...  I found if I comment out the 'startEntity'/'endEntity' code
in SAXContentHandler it works as I'd expect.

Thanks!
Jason

test.xml
---- cut here ----
<?xml version="1.0"?>
<!DOCTYPE broked [
        <!ELEMENT junk (#PCDATA)>
        <!ELEMENT broked (junk*)>
        <!ENTITY LmInclude SYSTEM "junk.xml">
]>
<broked>
        &LmInclude;
</broked>
---- cut here ----

junk.xml
---- cut here ----
<junk>hi there</junk><junk>hello world</junk>
---- cut here ----


Here's the Java code Broked.java:

package test;

import java.util.*;
import java.io.*;
import org.xml.sax.*;
import org.dom4j.*;
import org.dom4j.io.SAXReader;
import org.apache.log4j.*;

/**
 * Insert the type's description here.
 * Creation date: (02/25/2002 5:13:25 PM)
 * @author: Jason Robertson
 */
public class Broked {
/**
 * Broked constructor comment.
 */
public Broked() {
        super();
}
/**
 * Insert the method's description here.
 * Creation date: (02/25/2002 5:13:54 PM)
 * @param args java.lang.String[]
 */
public static void main(String[] args) throws Exception {
        SAXReader reader = new SAXReader();
                reader.setValidation(true);
                Document doc = reader.read(args[0]);
                List l = doc.selectNodes("//broked/junk");
                for (int i = 0; i < l.size(); i++) {
                        System.out.println("Found node: " +
((Element)l.get(i)).getStringValue());
                }
}
}


_______________________________________________
dom4j-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dom4j-user

Reply via email to