脚本宝典收集整理的这篇文章主要介绍了PHP Xpath – 解析平面HTML结构,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_7@
<h1> heading 1 </h1> <p> Paragraph 1.1 </p> <p> Paragraph 1.2 </p> <p> Paragraph 1.3 </p> <h1> heading 2 </h1> <p> Paragraph 2.1 </p> <p> Paragraph 2.2 </p> <h1> heading 3 </h1> <p> Paragraph 3.1 </p> <p> Paragraph 3.2 </p> <p> Paragraph 3.3 </p>@H_404_7@我基本上希望它看起来像:
@H_404_7@
<div id='1'> <h1> heading 1 </h1> <p> Paragraph 1.1 </p> <p> Paragraph 1.2 </p> <p> Paragraph 1.3 </p> </div> <div id='2'> <h1> heading 2 </h1> <p> Paragraph 2.1 </p> <p> Paragraph 2.2 </p> </div> <div id='3'> <h1> heading 3 </h1> <p> Paragraph 3.1 </p> <p> Paragraph 3.2 </p> <p> Paragraph 3.3 </p> </div>@H_404_7@甚至可能不值得发布我到目前为止所做的代码,因为它只是变得一团糟.基本上我试图为’// h1’做一个xpath查询.创建新的DIV标记作为父节点.然后将h1 DOM节点复制到第一个DIV中,然后遍历nextSibling,直到我点击另一个h1标签 – 如上所述它变得混乱.
@H_404_7@对于< h1>和任何其他节点,如果引用存在,删除节点并将其作为子节点添加到引用.
@H_404_7@例:@H_404_7@
$doc->loadXML($xml); $xp = new DOMXPath($doc); $current = NULL; $id = 0; foreach($xp->query('/platau/node()') as $i => $sort) { if (isset($sort->tagName) && $sort->tagName === 'h1') { $current = $doc->createElement('div'); $current->setattribute('id',++$id); $current = $sort->parentNode->insertBefore($current,$sort); } if (!$current) continue; $sort->parentNode->removeChild($sort); $current->apPEndChild($sort); }@H_404_7@Demo
以上是脚本宝典为你收集整理的PHP Xpath – 解析平面HTML结构全部内容,希望文章能够帮你解决PHP Xpath – 解析平面HTML结构所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。