2009-07-01 2 views
5

저는 Python의 ElementTree를 사용하여 XHTML 파일을 생성하려고합니다.Python의 ElementTree로 "가상 루트"를 만드는 방법은 무엇입니까?

그러나 ElementTree.Element()를 사용하면 하나의 태그 (예 : HTML) 만 만들 수 있습니다. 다양한 종류의 가상 루트를 만들 필요가 있으므로 다양한 DOCTYPES 등을 넣을 수 있습니다.

어떻게하면됩니까? 감사

답변

7

더 나은 방법이 있는지 모르겠어요하지만이 작업이 완료 본 적이 :

문자열로 기본 문서 만들기 : 시작하는 해당 문자열

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html></html> 

그런 다음 구문 분석을하여 새 문서.

+2

+1, 그래서이 솔루션은 (그러나 그것을 구문 분석 할 수 있습니다!) : 원하는 경우

, 당신은 파일의 시작 부분에 DTD 참조를 추가 할 수 있습니다 그것이 얻는만큼 깨끗합니다. –

0

나는 동일한 문제가있다. 문서를 파싱하고 다시 작성하면 doctype defenition은 더 이상 존재하지 않습니다. 단지 나무를 쓰기

는 일반 HTML 파일을 저장하려면

link text

저장 HTML 파일 번호 :하지만 난 설명서를 찾아 해결책을 발견했다.

tree.write("outfile.htm") 

파일이 포함 된 SCRIPT 또는 STYLE 태그를 포함하지 않는 한이 방법은 정상적으로 작동합니다. elementtree 추가/문서 타입을 만들 수 없습니다, 확인,

file = open("outfile.htm", "w") 
file.write(DTD + "\n") 
tree.write(file) 
file.close() 
관련 문제