如何解决PHP XPath如何使用html标签返回字符串?
|<?php
libxml_use_internal_errors(true);
$html = \'
<html>
<body>
<div>
Message <b>bold</b>,<s>strike</s>
</div>
<div>
<span class=\"how\">
<a href=\"link\" title=\"text\">Link</a>,<b> BOLD </b>
</span>
</div>
</body>
</html>
\';
$dom = new DOMDocument();
$dom->preserveWhiteSpace = false;
$dom->strictErrorChecking = false;
$dom->recover = true;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$messages = $xpath->query(\"//div\");
foreach($messages as $message)
{
echo $message->nodeValue;
}
这段代码返回\“ Message粗体,删除Link,BOLD \”,没有html标签...
我想输出以下代码:
Message <b>bold</b>,<s>strike</s>
<span class=\"how\">
<a href=\"link\" title=\"text\">Link</a>,<b> BOLD </b>
</span>
你能帮助我吗?
解决方法
我可以很快地使用SimpleXML来完成此操作(如果可以从DOMDocument和DOMXPath切换,那么您可能会选择我的解决方案):
$html = \'
<html>
<body>
<div>
Message <b>bold</b>,<s>strike</s>
</div>
<div>
<span class=\"how\">
<a href=\"link\" title=\"text\">Link</a>,<b> BOLD </b>
</span>
</div>
</body>
</html>
\';
$xml = simplexml_load_string($html);
$arr = $xml->xpath(\'//div/*\');
foreach ($arr as $x) {
echo $x->asXML();
}
, $dom = new DOMDocument;
foreach($messages as $message)
{
echo $dom->saveHTML($message);
}
使用saveHTML()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。