脚本宝典收集整理的这篇文章主要介绍了php – XPath – 选择特定标记后的所有内容,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,这是HTML:
<h1>heading</h1> <p>Paragraph</p> <ul> <li>List ITem</li> <li>List item</li> </ul> <p>Paragraph</p> <h1>heading 2</h1> <ul> <li>List item</li> <li>List item</li> </ul> <p>Paragraph<img /></p>
从这里我试图创建这个数组:
array( 0 => '<p>Paragraph</p><ul><li>List item</li><li>List item</li></ul><p>Paragraph</p>',1 => '<ul><li>List item</li><li>List item</li></ul><p>Paragraph<img /></p>' )
什么是xpath查询选择h1标签之后的所有内容直到下一个,依此类推?
任何帮助或建议表示赞赏.
更新:
array( 'headings' => array( 1 => '<h1>heading</h1>',2 => '<h1>heading 2</h1>' ),'content' => array( 1 => '<p>Paragraph</p><ul><li>List item</li><li>List item</li></ul><p>Paragraph</p>',2 => '<ul><li>List item</li><li>List item</li></ul><p>Paragraph<img /></p>' ) )
假设您的代码放在$code中:
$code = <<<'CODE' <h1>heading</h1> <p>Paragraph</p> <ul> <li>List item</li> <li>List item</li> </ul> <p>Paragraph</p> <h1>heading 2</h1> <ul> <li>List item</li> <li>List item</li> </ul> <p>Paragraph<img /></p> CODE;
解:
// Content array... $content = array_map( function ($element) { return PReg_replace('/\>\s+\</','><',$element); },preg_split('/\<h1\>[^\<]*\<\/h1\>/',$code) ); array_shift($content); // headings array... preg_match_all('/\<h1\>[^\<]*\<\/h1\>/',$code,$matches); $headings = $matches[0]; // Result $result = array( 'headings' => $headings,'content' => $content,); print_r($result);
输出:
Array ( [headings] => Array ( [0] => <h1>heading</h1> [1] => <h1>heading 2</h1> ) [content] => Array ( [0] => <p>Paragraph</p><ul><li>List item</li><li>List item</li></ul><p>Paragraph</p> [1] => <ul><li>List item</li><li>List item</li></ul><p>Paragraph<img /></p> ) )
以上是脚本宝典为你收集整理的php – XPath – 选择特定标记后的所有内容全部内容,希望文章能够帮你解决php – XPath – 选择特定标记后的所有内容所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。