[jdom-interest] RE: Request new method Element.addContent( List mixedContent ).

Steven D. Keens skeens at planetfred.com
Thu Mar 29 11:34:08 PST 2001


Yes, it is a good way but for speed it looks to be slow.

Also, getMixedContent() copies all the mixed content
into a PartialList then returns that.  Or am I missing something?

It also allows me to add objects that aren't
Elements, PI's, Strings, Comments, CDATA's, & Entity's.

If you try the code below I get one of two results
depending on if the line e.addContent( l ) is commented out.
Note that this uses the addContent( List ) I sent earlier.

1) Result when e.addContent( l ) is commented out.

	<?xml version="1.0" encoding="UTF-8"?>
	<root>
	  Steven
	</root>

   Notice that the 5 and test objects aren't outputted.
   I didn't find where the logic is for this but why should
   I have to do it in two places.

2) Result when e.addContent( l ) is allowed to run.

	An Element may directly contain only objects of type
	String, Element, Comment, CDATA, Entity, and
	ProcessingInstruction: java.lang.Integer is not allowed




import org.jdom.*;
import org.jdom.output.*;
import java.util.*;
import java.io.*;

public class test
{
    public static void main(String[] args)
    {
        try
        {
            // Build the root element and document.
            Element e = new Element( "root" );
            Document d = new Document( e );

            LinkedList l = new LinkedList();
            l.add( new Integer( 5 ) );
            l.add( "Steven" );
            l.add( new test() );

            // This line works and passes through OK.
            e.getMixedContent().addAll( l );

            // This line throws an exception.
            e.addContent( l );

	    // If you comment out the e.addContent( l ) line just above
	    // the XMLOutputter works fine but doesn't show the
	    // Integer(5) nor the test object added to the linked list.
            XMLOutputter outer = new XMLOutputter( "  ", true );
            outer.output( d, System.out );
        }
        catch( Exception e )
        {
            System.out.println( e.getMessage() );
        }
    }
}

>-----Original Message-----
>From: jdom-interest-admin at jdom.org
>[mailto:jdom-interest-admin at jdom.org]On Behalf Of Jason Hunter
>Sent: Thursday, March 29, 2001 12:33
>To: Steven D. Keens
>Cc: jdom-interest
>Subject: Re: [jdom-interest] RE: Request new method Element.addContent(
>List mixedContent ).
>
>
>The standard way to do it now is:
>
>elt.getMixedContent().addAll(List).
>
>Isn't that pretty good already?


--
Steven Keens                mailto:skeens at planetfred.com
PlanetFred Inc.             http://www.planetfred.com
44 Byward Market, Suite 240, Ottawa, ON, K1N 7A2, Canada



More information about the jdom-interest mailing list