всем привет, подскажите по phpquery: PHP: require("phpquery.php"); $c = "<body><p>pppp</p><div>dddd<a>aaaa</a></div></body"; $с = phpQuery::newDocument($c); 1 как мне получить название корневого элемента ( "body" ) 2 как мне получить список детей элемента "body" DOM-а $c? ("ррр" и "dddaaa") 3 как мне получить список всех элементов "body" ? ("ррр", "dddааа" , "ааа")
"корневой элемент" - это "body" - элемент у которого нет родителей. "название" - что за бред, это имя, конечно же ) имя элемента. название тэга. класс, любой уникальный идентификатор который можно прочитать сейчас и к которому можно будет обратится потом... PHP: $a = $c -> find("body") как оказалось, такого элемента как "body" в DOM-е нет ... а ответ на 3-й вопрос выглядит вот так: PHP: $c=$c->find(":next"); foreach($c as $child) { echo "<br>-".pq($child); } только я не понимаю почему ...
"название" - что за бред, это имя, конечно же ) имя элемента. название тэга ("p", "div", "a" ...). класс, любой уникальный идентификатор который можно прочитать сейчас и к которому можно будет обратится потом... на JQuery это выглядит так: Код (Javascript): this.name $(this).attr("name") я это перевожу на phpQuery так: PHP: pq($child) -> attr("name")
для моих задач можно сказать что интересуют дети body ) вот я нашел как получить список детей (в моем примере это параграф и див) PHP: $cl = pq($c) -> children(); у меня вопрос в том, как узнать "к чему" обращаться, а не "как". в моем примере, вопрос в том, как узнать "что" я получил (параграф или див ...) PHP: require("phpquery.php"); $c = "<body><p>pppp</p><div>dddd<a>aaaa</a></div></body"; $с = phpQuery::newDocument($c); $cl = pq($c) -> children(); foreach($cl as $c) { #вот тут я хочу понять что такое $c - параграф или див, #какие у него есть атрибуты #и как к нему можно обращаться #используя цивилизованные способы вроде методов #а не пещерным способом через strcmp() }
тоесть мне нужно, кроме require("phpquery.php"), еще эти две штуки подключить ? Код (Text): require_once "< YOUR PREFERRED LOCATION >/classes/autoload.php"; use com\soloproyectos\common\dom\node\DomNode; (да на каком это вообще языке ?? ) для того, что-бы я мог написать Код (Text): $c="<body><div>d-1</div><div>d-2<div>d-2-1</div><div>d-2-2<div>d-2-2-1</div></div></div><div>d-3</div></body>"; $c = phpQuery::newDocument($c); echo DomNode::name($c); ??? что ты такое, phpQuery ? я правильно понимаю, domnode это опциональная часть phpQuery ??
По ходу мне попалась более новая версия библиотеки.... В любом случае, найдите доки по той, что вы используете
дак в этом и грабли - есть только https://code.google.com/archive/p/phpquery/ и ссылки на jquery .... а мне нужно из jquery "this.name" получить аналог phpquery. хотя скорее всего "более новая версия библиотеки" это аналог ПНХ, но я не злюсь ...
PHP: #получаем имена тэгов элементов верхнего уровня require("phpquery.php"); $c = "<body><p>pppp</p><div>dddd<a>aaaa</a></div></body"; $c = phpQuery::newDocument($c); $c = $c -> children(); foreach($c as $cc) printf("%s<BR>", $cc -> tagName); #еще можно так: echo $c->elements[0]->tagName; #получено при помощи бубна (echo var_dump($c); ) #и шаманских плясок (исходный код страницы) благодарю @denis01 и @mkramer за наставления
Люди помогите и подскажите как у эмекса спарсить цену товара и сроки. https://www.emex.ru/f?detailNum=7522&makeId=1389 Я в браузере теги страницы вижу все а phpquery видит только шапку и фут страницы