[jdom-interest] java.lang.IllegalStateException
Malachi de AElfweald
malachi at tremerechantry.com
Mon Oct 14 09:17:25 PDT 2002
That's a question for you....
I thought XML transformations did not require XML-output.... IE: I could
use XSL to convert my XML into comma-delimited file if I wanted to.... but
that isn't very easy to do with our stuff, is it?
Mal
10/14/2002 2:43:50 AM, Laurent Bihanic <laurent.bihanic at atosorigin.com> wrote:
>
>Hi,
>
>Your XPath expression does not select a single Element. Hence JDOMResult can't
>create a well-formed XML document from the selected node(s) and thus returns
>an empty document.
>This is a well-known flaw in both JDOMSource and JDOMResult : They should not
>require Documents as input/output but rather a list of nodes as specified by
>XSLT 1.0. A patch has been submitted and should be committed shortly (I hope).
>
>As for using XPath, for efficiency reasons, you should either directly use the
>Jaxen XPath engine (www.jaxen.org) which support JDOM or JDOM XPath classes
>(which rely on Jaxen) you can get from CVS.
>
>Laurent
>
>Robert Douglass wrote:
>> Hello JDOM list,
>>
>> I'm getting the following error
>>
>> java.lang.IllegalStateException: Root element not set
>> at org.jdom.Document.getContent(Document.java:332)
>> at org.jdom.output.XMLOutputter.output(XMLOutputter.java:794)
>> at org.jdom.output.XMLOutputter.output(XMLOutputter.java:585)
>> at sbpgames.util.XmlUtil.applyXPath(XmlUtil.java:39)
>> at sbpgames.util.XmlUtil.main(XmlUtil.java:128)
>>
>> when I attempt to use XMLOutputter.output on a document that is a result of
>> an in memory Transformer transformation. The main method (at the bottom)
>> creates a Document and passes that, along with an XPath expression as a
>> String to applyXPath (first method in the class). applyXPath creates a xsl
>> document that matches / and selects the XPath expression fed to it. This
>> stylesheet and the xml document are then fed to transform(JDOMSource in,
>> Source stylesheet, which returns a Document. If I change this line in the
>> transform method
>>
>> JDOMResult out = new JDOMResult();
>>
>> to
>>
>> Result out = new StreamResult(System.out);
>>
>> then I see that the transformation is working as expected. Therefore, I
>> suspect that I don't understand what happens to out in
>> transformer.transform(in, out);
>>
>> I'm new to this technology, so I realize my error could be anywhere, and
>> that this is a long chunk of code. Therefore I am very grateful to anybody
>> who has the time to look at it.
>>
>> -Robert Douglass
>
>_______________________________________________
>To control your jdom-interest membership:
>http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhost.com
>
>
More information about the jdom-interest
mailing list