我有一个包含HTML结构的字符串:
<p> ... </p>
<p> .... <a> .... </a></p>
<div id="quick_preview">
<p> .... </p>
</div>
<p> ... </p>
我想要做的只是在<description>
标记之后在div
中注入quick_preview
个标记p
。像这样的东西:
<p> ... </p>
<p> .... <a> .... </a></p>
<div id="quick_preview">
<description>
<p> .... </p>
</description>
</div>
<p> ... </p>
我使用了很多技术,例如domdocument或字符串处理,但找不到合适的解决方案。
答案 0 :(得分:1)
这是一个粗略的示例,可以帮助您开始使用PHP's DOM functions。该示例需要扩展以检查错误等,但确实有效。
$ php test.php
<?xml version="1.0"?>
<root><p>First p</p><p>Another p<a>a link</a></p><div id="quick_preview"><description><p>Third p </p></description></div><p>Last p</p></root>
以下是代码:
<?php
$xml = "<root><p>First p</p><p>Another p<a>a link</a></p><div id='quick_preview'><p>Third p </p></div><p>Last p</p></root>";
$doc = DOMDocument::loadXML($xml);
$xpath = new DOMXPath($doc);
$query = '//div';
$entries = $xpath->query($query);
$entry = $entries->item(0);
$new = $doc->createElement("description");
$new->appendChild($entry->firstChild);
$entry->appendChild($new);
echo $doc->saveXML();