Как я проверяю XHTML с nokogiri?

Я предполагаю, что это не возможно полностью автоматическим способом начиная с типа, и структура входа отличается много между функциями.

12
задан Pesto 17 August 2009 в 17:48
поделиться

1 ответ

Дело не только в тебе. Предполагается, что то, что вы делаете, будет правильным способом, но мне это никогда не удавалось. Насколько я могу судить, между Nokogiri и libxml есть некоторая разобщенность, из-за которой он не загружает SYSTEM DTD или распознает PUBLIC DTD. Он будет работать, если вы определите DTD в файле XML, но удачи в этом с XHTML DTD.

Лучшее, что я могу порекомендовать, - это использовать схемы для XHTML ] вместо этого:

require 'nokogiri'
require 'open-uri'

doc = Nokogiri::XML(open('http://www.w3.org'))
xsd = Nokogiri::XML::Schema(open('http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd'))

#this is a true/false validation
xsd.valid?(doc)    # => true

#this gives a listing of errors
xsd.validate(doc)  # => []
14
ответ дан 2 December 2019 в 20:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: