Re: Unable to output DOM document into SVG/XML format

Martin J <[email protected]>
Newsgroups gmane.text.xml.batik.user
Message-ID <CADpEmNmEw4j5UJiS+rhSDrGvHO6fiqfLtnjsLNCWPc9ge3P-YQ@mail.gmail.com>
FWIW, when I needed to save a DOM in text format, I used Xalan:
org.apache.xml.serializers contains all I needed.

HTH
Martin

On 27 November 2011 03:23, jonathan wood <[email protected]> wrote:
> 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 <[email protected]>
> 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 <[email protected]>
>> 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
>>
>
>



-- 
From my MacBook Pro
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.