13
13
from html5lib .tokenizer import HTMLTokenizer
14
14
from html5lib import treebuilders , serializer , treewalkers
15
15
from html5lib import constants
16
+ from html5lib import utils
16
17
17
18
def parse ():
18
19
optParser = getOptParser ()
@@ -108,7 +109,14 @@ def printOutput(parser, document, opts):
108
109
109
110
if document is not None :
110
111
if opts .xml :
111
- sys .stdout .write (document .toxml ("utf-8" ))
112
+ tb = opts .treebuilder .lower ()
113
+ if tb == "dom" :
114
+ document .writexml (sys .stdout , encoding = "utf-8" )
115
+ elif tb == "lxml" :
116
+ import lxml .etree
117
+ sys .stdout .write (lxml .etree .tostring (document ))
118
+ elif tb == "etree" :
119
+ sys .stdout .write (utils .default_etree .tostring (document ))
112
120
elif opts .tree :
113
121
if not hasattr (document ,'__getitem__' ):
114
122
document = [document ]
@@ -152,7 +160,7 @@ def getOptParser():
152
160
help = "Time the run using time.time (may not be accurate on all platforms, especially for short runs)" )
153
161
154
162
parser .add_option ("-b" , "--treebuilder" , action = "store" , type = "string" ,
155
- dest = "treebuilder" , default = "simpleTree " )
163
+ dest = "treebuilder" , default = "etree " )
156
164
157
165
parser .add_option ("-e" , "--error" , action = "store_true" , default = False ,
158
166
dest = "error" , help = "Print a list of parse errors" )
0 commit comments