$xml = file_get_contents(example.com); $dom = new DomDocument(); $dom->loadXML($xml); $items = $dom->documentElement; foreach($items->childNodes as $item) { $childs = $item->childNodes; foreach($childs as $i) { echo $i->nodeValue . "<br />"; } } Теперь я получаю это предупреждение в каждом втором foreach: Warning: Invalid argument supplied for foreach() in file_example.php on line 14 Пожалуйста, помогите парням. Благодаря!
У меня есть код, который вытягивает HTML из внешнего источника: $doc = new DOMDocument(); @$doc->loadHTML($html); $xml = @simplexml_import_dom($doc); // just to make xpath more simple $images = $xml->xpath('//img'); $sources = array(); Затем, если я добавлю все источники с этим кодом: foreach ($images as $i) { array_push($sources, $i['src']); } echo "<pre>"; print_r($sources); die(); Я получаю этот […]
Я пытаюсь разобрать HTML из loadHTML, но у меня возникли проблемы, мне удалось пропустить все <tr> s в документе, но я не знаю, как прокручивать <td> s в каждой строке. Это то, что я сделал до сих пор: $DOM->loadHTML($url); $rows= $DOM->getElementsByTagName('tr'); for ($i = 0; $i < $rows->length; $i++) { // loop through rows // […]
Мне нужно проанализировать содержимое HTML-документа (созданного Microsoft Word). Перемещение DOM для получения необходимой мне информации / содержимого, а затем вывод желаемого в виде CSV. Я не знаю, что делать. Теперь, поскольку PHP на самом деле не моя вещь, и у меня плотный график, я собирался использовать PHP Simple HTML DOM Parser с http://simplehtmldom.sourceforge.net/ Я заметил, […]
Хорошо, я пытаюсь добиться этого в течение нескольких часов и не могу найти решение, так что я здесь! У меня есть 2 DOMDocument, и я хочу переместить узлы документа на другой. Я знаю структуру обоих документов, и они одного типа (поэтому у меня не должно возникнуть проблемы с их объединением). Кто-нибудь может мне помочь? Если […]
Я пытаюсь расширить класс DOMDocument, чтобы упростить выбор XPath. Я написал этот фрагмент кода: class myDOMDocument extends DOMDocument { function selectNodes($xpath){ $oxpath = new DOMXPath($this); return $oxpath->query($xpath); } function selectSingleNode($xpath){ return $this->selectNodes($xpath)->item(0); } } Эти методы возвращают DOMNodeList и объект DOMNode, соответственно. Теперь я хотел бы реализовать аналогичные методы для объектов DOMNode. Но, очевидно, если […]
Рассмотрим следующий код: $xml = <<<XML <root> <region id='thisRegion'></region> <region id='thatRegion'></region> </root> XML; $partials['thisRegion'] = "<p>Here's this region</p>"; $partials['thatRegion'] = "<p>Here's that region</p>"; $DOM = new DOMDocument; $DOM->loadXML($xml); $regions = $DOM->getElementsByTagname('region'); foreach( $regions as $region ) { $id = $region->getAttribute('id'); $partial = $DOM->createDocumentFragment(); $partial->appendXML( $partials[$id] ); $region->parentNode->replaceChild($partial, $region); } echo $DOM->saveXML(); Выход: <root> <p>Here's this […]
В настоящее время у меня проблема с чтением в XHTML, поскольку синтаксический анализатор XML не распознает объекты символов HTML, поэтому: <?php $text = <<<EOF <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Entities are Causing Me Problems</title> </head> <body> <p>Copyright © 2010 Some Bloke</p> </body> </html> EOF; $imp = new DOMImplementation (); $html5 = […]
почему это $html = '<a href="/browse/product.do?cid=1&vid=1&pid=1" class="productItemName">what is going on here</a>'; $dom = new DOMDocument(); $dom->loadhtml($html); $xpath = new DOMXPath($dom); $selectors['link'] = '//a/@href'; $links_nodeList = $xpath->query($selectors['link']); foreach ($links_nodeList as $link) { $links[] = $link->nodeValue; } echo("<p>links</p>"); echo("<pre>"); print_r($links); echo("</pre>"); вывод links Array ( [0] => /browse/product.do?cid=1&vid=1&pid=1 ) и не links Array ( [0] => /browse/product.do?cid=1&vid=1&pid=1 […]
Я использую xpath для удаления <p> </p> $nodeList = $xpath->query("//p[text()=\"\xC2\xA0\"]"); # foreach($nodeList as $node) { $node->parentNode->removeChild($node); } но он не удаляет это, <p><strong><br /> </strong></p> или такого рода, <p><strong> </strong></p> Как я могу их удалить? Или, может быть, регулярное выражение, которое я должен использовать?