Xerces-C: анализ Javascript внутри HTML

Я хочу анализировать веб-сайты по их метатегам. Для этого я использую xerces-c.

shared_ptr<SAX2XMLReader> parser(XMLReaderFactory::createXMLReader());

//Create and set callback handler with the given callback functions
Handler handler(startElement,endElement,characters);
parser->setContentHandler(&handler);
parser->setErrorHandler(&handler);

//Parse the file with the given callback handler
parser->parse(filename.c_str());

На некоторых веб-сайтах теперь есть javascript. Внутри тегов script javascript использует оператор && для логического "и".

Xerces-C интерпретирует это как ссылку на сущность (например,  ) и выдает исключение, поскольку не знает ссылку на сущность &&.

Есть ли способ прочитать это правильно как текст?

Или, если нет, есть ли способ просто игнорировать все символы внутри тегов скрипта? Мне они все равно не нужны. Я просто хочу проанализировать метатеги.


person Heinzi    schedule 17.12.2011    source источник
comment
Стоит ли анализировать HTML с помощью анализатора XML, если только это не XHTML? Javascript должен быть правильно экранирован в разделе CDATA, или я думаю, вам придется сделать первый проход по коду HTML/JS, чтобы очистить его, прежде чем передавать его через Xerces.   -  person Ludovic Kuty    schedule 17.12.2011


Ответы (1)


По сути, html не обязательно является правильно сформированным xml, но вы можете, например, предварительно обработать его с помощью tidy перед подачей парсеру xml.

person Michael Krelin - hacker    schedule 17.12.2011