PHP DOMDocument и DOMXpath - PullRequest
       15

PHP DOMDocument и DOMXpath

2 голосов
/ 02 июня 2011

Я пытаюсь найти последний тег абзаца в блоке HTML с помощью DOMDocument / DOMXpath, но, похоже, не могу понять.

# Create DOMDocument Object
        $dom = new DOMDocument;
        # Load HTML into DomDocument Object
        $dom->loadHTML($data['component2']);

        # Creat DOMXPath Object and load DOMDocument Object into XPath for magical goodness
        $xpath = new DOMXPath($dom);

        # Loop through each comment node
        foreach($xpath->query('//p') as $node) {
            // krumo($node->parentNode);
            print_r($node->parentNode->lastChild);
        }
        exit();

print_r возвращает пустое DOMText Object ( )... есть идеи, как найти последний абзац в блоке HTML с помощью DOMDocument / DOMXPath?

Рабочий код:

# Create DOMDocument Object
        $dom = new DOMDocument;
        $dom->preserveWhiteSpace = false;
        # Load HTML into DomDocument Object
        $dom->loadHTML($data['component2']);

        # Creat DOMXPath Object and load DOMDocument Object into XPath for magical goodness
        $xpath = new DOMXPath($dom);
        $q = $xpath->query('//div[@class="t_content"]/p[last()]');

        $data['component2'] = str_replace(utf8_decode($q->item(0)->nodeValue), "", $data['component2']);

1 Ответ

2 голосов
/ 02 июня 2011

Используйте это вместо:

 print_r($node->parentNode->lastChild->nodeValue);
...