如何获取HTML的嵌套闭合标签

WBOY
发布: 2016-06-23 14:09:48
原创
1697 人浏览过


假设有这样一个HTML:


测试文字1



测试文字2

测试文字3




测试文字4


例如我要获取到
和它对应的闭合标签
中间的所有内容,如何做?
谢谢!!!!


回复讨论(解决方案)

可以考虑jQuery,

<script type="text/javascript">jQuery(function(){var res = $(".test").html();return res;});</script>
登录后复制
登录后复制

可以考虑jQuery,

<script type="text/javascript">jQuery(function(){var res = $(".test").html();return res;});</script>
登录后复制
登录后复制


好办法啊,可惜我要的是PHP上能处理的方法。

不太明白你的意思,是不是要用PHP处理获取的结果?
如果这样的话,可以使用定界符

$html = <<


测试文字1



测试文字2

测试文字3




测试文字4

EOT;
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$tags = $xpath->query('//div[@class="test"]');
foreach($tags as $tag)
echo $tag->nodeValue;

你的HTML不完整,
有3个,不符合w3c标准。

很好,u010668220 做的不错!

$s =<<< HTML<div class='test'><p>测试文字1</p><div><span>测试文字2</span></div>测试文字3<br /><br />测试文字4</div>HTML;require('phpQuery/phpQuery.php');$doc = phpQuery::newDocument($s);echo $doc->find('.test')->html();
登录后复制
登录后复制

测试文字1



测试文字2

测试文字3



测试文字4

phpQuery 可以在网上下载
phpQuery 遵循 jquery 语法,除了 js 的事件处理外,就是一个 php 版的 jquery
会用jquery 就会用 phpQuery
唯一的缺点就是体积稍稍大了点

很好,u010668220 做的不错!

$s =<<< HTML<div class='test'><p>测试文字1</p><div><span>测试文字2</span></div>测试文字3<br /><br />测试文字4</div>HTML;require('phpQuery/phpQuery.php');$doc = phpQuery::newDocument($s);echo $doc->find('.test')->html();
登录后复制
登录后复制

测试文字1



测试文字2

测试文字3



测试文字4

哈哈,那个回答是 littlebo01 回复的,我是提问者!!
原来PHP也可以使用JQ,长见识了!!

方法真好!!我等下试试
在网上找到一种 方法是用正则的,类似这个
[\w]+)[^>]*\s[iI][dD]=(?["']?)footer(?(Quote)\k)[^>]*?(/>|>((?[^>]*>)|\k>(?)|.*?)*\k>)
但真心看不懂呀!!
思想就是先匹配最前面的起始标签,假设是div吧(

不用正则,要是也能按这种思维写出来效果就好了。

不太明白你的意思,是不是要用PHP处理获取的结果?
如果这样的话,可以使用定界符

就是使用PHP来获取这段数据,上面有人介绍了PHP的JQ,呵呵。。
不过希望有其它方法

mark 
有更好的办法吗

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板