An alternate out method from Document -> xml ... exceptions and proper variable init removed...the following get's you the same place

            DOMUtilities.writeDocument(doc, new FileWriter("myfile.svg"));

http://xmlgraphics.apache.org/batik/javadoc/org/apache/batik/dom/util/DOMUtilities.html

On Fri, Nov 25, 2011 at 2:08 AM, jonathan wood <jonathanshawwood@gmail.com> wrote:
I noticed a couple things, but am not where I can currently compile/test....

Create the TextElement in the SVG namespace

Change ...

        Element e = doc.createElement("text");
...to...

        Element e = doc.createElementNS(svgNS, "text");

... append the text to the textEl...

Change...

        svgRoot.appendChild(t);

...to...

        e.appendChild(t);


On Thu, Nov 24, 2011 at 9:16 PM, Alan Pandit <alan.pandit@gmail.com> wrote:
I am attempting to output the contents of a DOM Tree in XML format to System.out using the SVGGraphics2D class.  Essentially, I want to be able to see what tags I am creating as I perform calls to appendChild(), but when I execute the code below, I don't see "Hello World" or <text> as I expect to see.  Are the calls to appendChild() supposed to change the Document object named doc so the changes will be reflected in the streamed out SVG?

        String svgNS = SVGDOMImplementation.SVG_NAMESPACE_URI;
        DOMImplementation impl = SVGDOMImplementation.getDOMImplementation();
        Document doc = impl.createDocument(svgNS, "svg", null);
               
        Element svgRoot = doc.getDocumentElement();
       
        Element e = doc.createElement("text");
        svgRoot.appendChild(e);
       
        Text t = doc.createTextNode("Hello World");
       
        svgRoot.appendChild(t);
       
        // Create an instance of the SVG Generator.
        SVGGraphics2D svgGenerator = new SVGGraphics2D(doc);
        try{

   
            // Finally, stream out SVG to the standard output using
            // UTF-8 encoding.
            boolean useCSS = true; // we want to use CSS style attributes
            Writer out = new OutputStreamWriter(System.out, "UTF-8");
            svgGenerator.stream(out, useCSS);
        }
        catch(Exception exc) {
   
            System.out.println(exc+"");
        }


This is the OUTPUT I get:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
          'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
<svg style="stroke-dasharray:none; shape-rendering:auto; font-family:&apos;Dialog&apos;; text-rendering:auto; fill-opacity:1; color-interpolation:auto; color-rendering:auto; font-size:12; fill:black; stroke:black; image-rendering:auto; stroke-miterlimit:10; stroke-linecap:square; stroke-linejoin:miter; font-style:normal; stroke-width:1; stroke-dashoffset:0; font-weight:normal; stroke-opacity:1;" xmlns="http://www.w3.org/2000/svg" contentScriptType="text/ecmascript" preserveAspectRatio="xMidYMid meet" xmlns:xlink="http://www.w3.org/1999/xlink" zoomAndPan="magnify" version="1.0" contentStyleType="text/css"
><!--Generated by the Batik Graphics2D SVG Generator--><defs id="genericDefs"/><g/></svg>


Thanks.

Alan