2012-04-30 3 views
0

На первом этапе html5lib учебник Я вижу довольно запутанное поведение.html5lib возвращает <None>

docs говорит:

import html5lib 
f = open("mydocument.html") 
doc = html5lib.parse(f) 

Это вернет дерево в формате пользовательского "simpletree".

В качестве файла у меня есть нормальный html-документ. Но в моем случае это:

<None> 
>>> doc is None 
False 

Я считаю, что это не нормально, но я понятия не имею, что происходит.

редактировать

Если я вызываю read метод на открытом файл он возвращает файл в виде строки:

f = open("mydocument.html") 
f.read() 
# returns string with html 

И после того, как doc = html5lib.parse(f), f.read() возвращает пустую строку, как файл файл был уже читать.

+0

mydocument.html содержит ...? –

+0

, конечно, это html-файл, скопированный с страницы входа redmine =), и я использую полный путь, как '/ home/user/file.html' – I159

ответ

1
  • в <None> самом деле не означает, что документ не разбирается, это просто означает, что вы документ не имеет имени. если вы

    doc.name = "test" 
    print(doc) 
    

    он должен показать <test>

  • parse также может принимать строку в качестве аргумента, в этом случае она будет загружать файл для вас, не нужно, чтобы открыть его самостоятельно.

  • попробовать print(doc.toxml())

Смежные вопросы