Bugs item #527062, was opened at 2002-03-07 09:57
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=116035&aid=527062&group_id=16035
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Nobody/Anonymous (nobody)
Assigned to: Nobody/Anonymous (nobody)
Summary: Incorrect entity handling.
Initial Comment:
dom4j 1.2 and Xerces 2.0+ SAXContentHandler Entity handling bug (probably StringBuffer
reset/overwrite bug?). Described below. Workaround is to use DOMReader instead of
SAXReader (performance penalty).
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 ----
Java code (main())
--
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());
}
--
Correct output
--
unixPrompt> java test.Broked test.xml
Found node: hi there
Found node: hello world
--
Incorrect (and current, as of dom4j 1.2) output:
--
unixPrompt> java test.Broked test.xml
Found node: &LmInclude; there
Found node: hello world
--
Thanks.
----------------------------------------------------------------------
You can respond by visiting:
http://sourceforge.net/tracker/?func=detail&atid=116035&aid=527062&group_id=16035
_______________________________________________
dom4j-dev mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dom4j-dev