2012-08-28 6 views
1

역 마가렛 루비 보석을 사용하여 HTML 페이지를 Markdown으로 변환하려고합니다.루비에서 닫히지 않은 HTML 태그를 자동으로 수정하기

/usr/lib/ruby/1.9.1/rexml/parsers/treeparser.rb:95:in `rescue in parse': #<REXML::ParseException: Missing end tag for 'img' (got "td") (REXML::ParseException) 

소스는 일부 IMG, INPUT 등 태그 > 대신 />에있는 끝을 포함 불행하게도 실패합니다.

나는 tidy_ffi 보석 시도했다 :

doc = Nokogiri::HTML(TidyFFI::Tidy.new(Nokogiri::HTML(page).to_html, 
     :numeric_entities => 1, 
     :output_html => 1, 
     :merge_divs => 0, 
     :merge_spans => 0, 
     :join_styles => 0, 
     :clean => 1, 
     :indent => 1, 
     :wrap => 0, 
     :drop_empty_paras => 0, 
     :literal_attributes => 1).clean) 

을하지만 그 차이를하지 않았다. 어떤 제안?

+1

HTML 샘플을 보여주십시오. –

+0

어느 지점에서 오류가 발생합니까? 관련 코드도 함께 표시하십시오. –

+0

HTML은 어디서 오는가? 마크 다운 프로세서? –

답변

1

리버스 마크 다운은 실제로 마크 다운 프로세서가 올바른 형식의 XHTML을 생성한다고 가정합니다. 귀하가 원하지 않는 경우 html2markdown 보석을 사용해보십시오. Nokogiri를 사용하여 구문 분석하고, 더 강력 할 가능성이 있습니다 (면책 조항 : 사용하지 않았습니다).

-2

나는 html : https://www.ruby-toolbox.com/gems/auto_excerpt을 발췌 한 보석을 만들었거나 이것을 사용하는 코드를 보았을 것입니다. 그 질문에 대한 대답이 확실하지 않은 경우 여기를 클릭하십시오.

사실 난 그냥 두 번 노코 기리 :: HTML 전화를 발견 : Nokogiri::HTML(TidyFFI::Tidy.new(Nokogiri::HTML(page).to_html

난 당신이지고있어 오류가 있지만 노코 기리 또는 TifyFFI에서오고 있는지 확실하지 않습니다.

+0

나는 이것이 전혀 관련이 없다고 생각한다. OP는 HTML 처리 방법을 알고있는 것 같습니다. –

+0

업데이트 된 것 같지 않습니다. – RipTheJacker

+0

Nokogiri를 사용하는 것은 합법적입니다. 그는 Nokogiri가 일부 픽스 업을 수행하도록 문서를 파싱하고 다시 HTML로 변환하고 TidyFFI가 HTML을 다시 반환하는 마법을 작동 시키려고합니다. 마침내 그는 노코 기리 (Nokogiri)와 함께 그것을 문서로 재 해석한다. 틀에 얽매이지 않지만 괜찮습니다. 단지 문제를 해결하지 못합니다. –

관련 문제