Делаем синтаксический анализ dom с помощью php без учета регистра

Я разбираю html, используя domxpath в php, и извлекаю описание из веб-страницы. Но проблема, с которой я столкнулся, заключается в том, что она чувствительна к регистру и выдает ошибку, если что-то написано в другом регистре. вот мой код:

$d=new DOMDocument();
$d->loadHTML($source);
$domx = new DOMXPath($d);
$description=$domx->query("//meta[@name='description']")->item(0)->getAttribute('content');

он работает нормально, когда все в нижнем регистре, но выдает ошибку, если что-то написано в любом другом регистре. Есть ли какой-либо флаг или что-то, что может сделать domxpath нечувствительным к регистру.


person Sourabh    schedule 19.07.2012    source источник
comment
stackoverflow.com/questions/625986/   -  person inhan    schedule 19.07.2012
comment
этот ответ касается xml, я новичок в domxpath и анализирую данные html, поэтому раньше не проверял этот ответ.   -  person Sourabh    schedule 19.07.2012
comment
php.net/manual/en/domxpath.query.php#77048 Этот комментарий подразумевает, что использование нижнего регистра в ваших выражениях xpath всегда должно работать, если вы использовали DOMDocument::loadHTML(). Вы проверяли это?   -  person Sergey Eremin    schedule 19.07.2012
comment
@kgb этот комментарий подразумевает, что имена элементов и атрибутов нечувствительны к регистру, но «описание» — это значение атрибута имени метаэлемента, которое чувствительно к регистру.   -  person Sourabh    schedule 19.07.2012


Ответы (1)


Это может быть обманом, но поможет ли это?

$d=new DOMDocument();
$d->loadHTML(mb_strtolower($source));

Это также сделает весь контент строчными буквами...

person Sergey Eremin    schedule 19.07.2012
comment
инновационное решение, я должен сказать, но я должен использовать это извлеченное описание, и это решение изменит свой регистр, так что не очень хорошая идея. - person Sourabh; 19.07.2012