Articles of xpath

Поиск количества узлов в PHP, DOM, XPath

Я загружаю HTML в DOM, а затем запрашиваю его с помощью XPath в PHP. Моя текущая проблема заключается в том, как узнать, сколько совпадений было сделано, и как только это будет установлено, как мне получить к ним доступ? В настоящее время у меня есть это грязное решение: $i = 0; foreach($nodes as $node) { echo […]

Использование usort с simplexml

У меня проблема, когда ни одно из моих значений не заканчивается в правильном порядке. $xml = file_get_contents('admin/people.xml'); $x = new SimpleXMLElement($xml); $sort=$x->person; function cmp($a, $b){ if ($a->age == $b->age) { return 0; } return ($a->age < $b->age) ? -1 : 1; } usort($sort, 'cmp'); foreach ($sort as $key => $value) { echo "$key: $value->age<br>"; } […]

php xpath в XML

Как я могу достичь этого: <root> <gallery name="First"> <picture active="1" detail="not shown"/> <picture active="1" detail="not shown"/> <picture active="0" detail="not shown"/> </gallery> <gallery name="Second"> <picture active="0" detail="not shown"/> <picture active="1" detail="SHOW THIS ONE"/> <picture active="1" detail="AND SHOW THIS ONE" /> </gallery> </root> Я пытаюсь: $myArray = $objXML->xpath('gallery[@name="Second"]/picture[@active=1]'); Как я могу изменить его, чтобы получить желаемый результат? […]

Xpath выбирает несколько тегов

Я хочу, чтобы несколько тегов (td и th) использовали запрос PHP DOMXPath. Как мне это сделать?

Как удалить <br/>, если текст не появился до или после него? DOMxpath или регулярное выражение?

Как удалить <br/> если текст не появился до или после него? Например, <p><br/>hello</p> <p>hello<br/></p> они должны быть переписаны так, <p>hello</p> <p>hello</p> Должен ли я использовать DOMxpath или regex, было бы лучше? (Примечание. У меня есть сообщение об удалении <p><br/></p> с DOMxpath раньше, а затем я столкнулся с этой проблемой!) РЕДАКТИРОВАТЬ: Если у меня есть это […]

получить метатег описания с помощью xpath

Мне нужно содержание описание и содержание тегов ключевых слов. У меня есть этот код, но ничего не пишите. Идея? $str = <<< EOD <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta name="description" content="text in the description tag" /> <meta name="keywords" content="text, in, the, keywords, tag" /> </head> EOD; $dom = new DOMDocument(); $dom->loadHTML($str); $xpath = new DOMXPath($dom); […]

Покажите разницу между 2 файлами xml (с php)

У меня есть xml-файл со следующей структурой. <?xml version="1.0" encoding="utf-8"?> <products> <product> <nr>0</nr> <product_id>17856</product_id> <product_number>54586</product_number> <product_name>just an name</product_name> <product_url>product url</product_url> <price>66.3445</price> <description> bla die bla </description> <manufacturer>manu 1</manufacturer> <category>category 1</category> <stock>3</stock> <eancode></eancode> <date_added>2011-04-18 12:10:28</date_added> <image_front></image_front> <image_back></image_back> <vat_value>1.19</vat_value> </product> </products> Файл xml содержит около 1000 продуктов. То, что я хотел бы добиться, – это то, что […]

php xpath: запрос в результате запроса

Я пытаюсь разобрать html-файл. Идея состоит в том, чтобы получить классы span с title и desc и получить их информацию в каждом div, который имеет атрибут class = 'thebest'. вот мой код: <?php $example=<<<KFIR <html> <head> <title>test</title> </head> <body> <div class="a">moshe1 <div class="aa">haim</div> </div> <div class="a">moshe2</div> <div class="b">moshe3</div> <div class="thebest"> <span class="title">title1</span> <span class="desc">desc1</span> </div> […]

Выберите nodeValue, но исключаем дочерние элементы.

Предположим, у меня есть этот код: <p dataname="description"> Hello this is a description. <a href="#">Click here for more.</a> </p> Как выбрать nodeValue из p но исключить a и его содержимое? Мой текущий код: $result = $xpath->query("//p[@dataname='description'][not(self::a)]"); Я выбираю его по $result->item(0)->nodeValue;

Как заставить XPath использовать UTF8?

У меня есть XHTML-документ, который передается в приложение PHP через Greasemonkey AJAX. Приложение PHP использует UTF8. Если я вывожу содержимое POST прямо в текстовое поле в приемном div AJAX, все все еще правильно закодировано в UTF8. Когда я пытаюсь разобрать с помощью XPath $dom = new DOMDocument(); $dom->loadHTML($raw2); $xpath = new DOMXPath($dom); $query = '//td/text()'; […]