1 package org.codehaus.plexus.util.xml;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import java.io.PrintWriter;
20 import java.io.Writer;
21
22
23
24
25 public class Xpp3DomWriter
26 {
27 public static void write( Writer writer, Xpp3Dom dom )
28 {
29 write( new PrettyPrintXMLWriter( writer ), dom );
30 }
31
32 public static void write( PrintWriter writer, Xpp3Dom dom )
33 {
34 write( new PrettyPrintXMLWriter( writer ), dom );
35 }
36
37 public static void write( XMLWriter xmlWriter, Xpp3Dom dom )
38 {
39 write( xmlWriter, dom, true );
40 }
41
42 public static void write( XMLWriter xmlWriter, Xpp3Dom dom, boolean escape )
43 {
44
45 xmlWriter.startElement( dom.getName() );
46 String[] attributeNames = dom.getAttributeNames();
47 for ( String attributeName : attributeNames )
48 {
49 xmlWriter.addAttribute( attributeName, dom.getAttribute( attributeName ) );
50 }
51 Xpp3Dom[] children = dom.getChildren();
52 for ( Xpp3Dom aChildren : children )
53 {
54 write( xmlWriter, aChildren, escape );
55 }
56
57 String value = dom.getValue();
58 if ( value != null )
59 {
60 if ( escape )
61 {
62 xmlWriter.writeText( value );
63 }
64 else
65 {
66 xmlWriter.writeMarkup( value );
67 }
68 }
69
70 xmlWriter.endElement();
71 }
72
73 }