html解析器PHP,PHP简单的HTML DOM解析器

现在,我正在尝试提取所有包含< b> -tag inclduing< / b>的元素.来自现有的HTML文档.这很好用

foreach($html->find('b') as $q)

echo $q;

如何才能显示仅包含< b>,< / b> -tags后跟< span class =“标记为”>?

更新:

我用firebug来获取元素的css路径.现在它看起来像这样:

foreach ($html->find('html body div#wrapper table.desc tbody tr td div span.marked') as $x)

foreach ($x->find('html body div#wrapper table.desc tbody tr td table.split tbody tr td b') as $d)

echo $d;

但它不起作用……有什么想法吗?

更新:

为了澄清我的问题,这里有一个带有起始表和结束表标签的文档示例.

1
2
3
4
1

element to extract

 

1

abed

 

2

ddee

 

3

xdef

 

4

abbcc

 

5

ab

 

6

e1

marked

解决方法:

b > span.marked

这会返回跨度,所以你可能不得不做$e-> parent()来获取b元素.

更新后编辑:

html body div#wrapper table.desc tbody tr td div span.marked'

html body div#wrapper table.desc tbody tr td table.split tbody tr td b'

此外,您的问题与查询不匹配.你问怎么找

elements surrounded with the ,-tags followed by a

这可以解读为任何一个意思

foo

要么

foofoo

b + span.marked

获取span,然后使用$e-> prev_sibling()返回元素的前一个兄弟(如果未找到则返回null).

但是,在你显示的标记中,既没有也没有.只有一个带有SPAN孩子的DIV具有标记的类

marked

如果这是您想要匹配的,那么它又是子组合子.当然,你必须将b更改为div.

标签:html,php,dom

来源: https://codeday.me/bug/20191008/1872575.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值