现在,我正在尝试提取所有包含< 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
|
|
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具有标记的类
如果这是您想要匹配的,那么它又是子组合子.当然,你必须将b更改为div.
标签:html,php,dom
来源: https://codeday.me/bug/20191008/1872575.html