57 doc.appendChild(doc.createProcessingInstruction("xml-stylesheet", |
57 doc.appendChild(doc.createProcessingInstruction("xml-stylesheet", |
58 "href=\"" + style + "\" type=\"text/css\"")) |
58 "href=\"" + style + "\" type=\"text/css\"")) |
59 } |
59 } |
60 |
60 |
61 // main body |
61 // main body |
62 def dom_tree(tr: Tree): Node = tr match { |
62 def DOM(tr: Tree): Node = tr match { |
63 case Elem(name, atts, ts) => { |
63 case Elem(name, atts, ts) => { |
64 val node = doc.createElement(name) |
64 val node = doc.createElement(name) |
65 for ((name, value) <- atts) node.setAttribute(name, value) |
65 for ((name, value) <- atts) node.setAttribute(name, value) |
66 for (t <- ts) node.appendChild(dom_tree(t)) |
66 for (t <- ts) node.appendChild(DOM(t)) |
67 node |
67 node |
68 } |
68 } |
69 case Text(txt) => doc.createTextNode(txt) |
69 case Text(txt) => doc.createTextNode(txt) |
70 } |
70 } |
71 val root_elem = tree match { |
71 val root_elem = tree match { |
72 case Elem(_, _, _) => dom_tree(tree) |
72 case Elem(_, _, _) => DOM(tree) |
73 case Text(_) => dom_tree(Elem("root", Nil, List(tree))) |
73 case Text(_) => DOM(Elem("root", Nil, List(tree))) |
74 } |
74 } |
75 doc.appendChild(root_elem) |
75 doc.appendChild(root_elem) |
76 doc |
76 doc |
77 } |
77 } |
78 } |
78 } |