Привет,PHP, XDOM, PHP имен и строчными
Итак, я работаю с PHP и XDOM, и у меня есть эти 2 выражения:
$parsed_node->meta->author = $node->xdom->query('//meta[@name="author"]/@content')->item(0)->nodeValue;
$parsed_node->meta->language = $node->xdom->query('//meta[@name="language"]/@content')->item(0)->nodeValue;
Конечно, оба из них , работают отлично, пока автор веб-сайта не решил использовать заглавные буквы в метатеге.
Теперь, когда речь идет о некоторых веб-сайтов, вы будете видеть такие выражения, как это:
<meta name="LANGUAGE" content="es" />
<meta name="DISTRIBUTION" content="Global" />
<meta name="ROBOTS" content="all" />
<meta name="author" content="Clarin.com" />
<meta name="Classification" content="noticias, información, videos, diario, newspaper" />
Итак, как вы можете видеть, у нас есть некоторые имена в верхнем регистре, некоторые в нижнем регистре, а некоторые из них с заглавной буквой.
- язык в верхнем регистре,
- распределение в верхнем регистре,
- роботов в верхнем регистре
- автора строчных букв
- и классификация с первой заглавной буквой.
Так что, как я использую PHP и там нет такого понятия, как XPath 2.0 у меня не было другого выбора, кроме как включить PHP функции:
$node->xdom->registerNamespace('php', 'http://php.net/xpath');
$node->xdom->registerPhpFunctions();
И тогда мы можем использовать выражение как этот :
$parsed_node->meta->language = $node->xdom->query("//meta[contains(php:functionString('strtolower', @name), 'language')]/@content")->item(0)->nodeValue;
вот мои 2 вопроса
- Кто-нибудь кп Я могу использовать здесь меньшее выражение?
как бы вы применили одно и то же выражение, чтобы получить название без учета регистра?
$ parsed_node-> title = $ node-> xdom-> query ('// title') -> item (0) -> nodeValue;
вид привет, крис.
Для Godsake, пожалуйста, кто-то делает библиотеку для xdom 2.0 для PHP –
Связанные: http://stackoverflow.com/questions/14553547/what-is-the-best-php-dom-2-array-function –
Спасибо Робби, но как это связано? вы предлагаете мне использовать эту настраиваемую функцию «xml2array()»? Я жалуюсь на отсутствие чувствительности к регистру при реализации PHP Xdom. Поскольку лучший подход, о котором я могу думать до сих пор, заключается в том, чтобы уменьшить размер всего xdom, прежде чем делать поиски –