1

PHP で DOM/Xpath を使用して HTML のブロックを解析しています。この HTML 内には、代わりにタグpに変換したいタグがいくつかあります。h4

生の HTML =>

<p class="archive">Awesome line of text</p>

必要な HTML =>

<h4>Awesome line of text</h4>

Xpathでこれを行うにはどうすればよいですか? に電話する必要があると思いますappendChildが、よくわかりません。ご指導ありがとうございます。

4

1 に答える 1

1

これらの行に沿った何かがそれを行う必要があります:

<?php
$html = <<<END
<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <p>hi</p>
        <p class="archive">Awesome line of text</p>
        <p>bye</p>
        <p class="archive">Another line of <b>text</b></p>
        <p>welcome</p>
        <p class="archive">Another <u>line</u> of <b>text</b></p>
    </body>
</html>
END;

$doc = new DOMDocument();
$doc->loadXML($html);

$xpath = new DOMXPath($doc);

// Find the nodes we want to change
$nodes = $xpath->query("//p[@class = 'archive']");

foreach ($nodes as $node) {
    // Create a new H4 node
    $h4 = $doc->createElement('h4');

    // Move the children of the current node to the new one
    while ($node->hasChildNodes())
        $h4->appendChild($node->firstChild);

    // Replace the current node with the new
    $node->parentNode->replaceChild($h4, $node);
}

echo $doc->saveXML();
?>
于 2012-09-20T19:55:37.123 に答える