- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个 HTML:
<div class="body">
<p>Some text 1</p>
<h2>Header 2</h2>
<p>Actual content</p>
</div>
我想从中得到除<h2>
以外的一切所以它看起来像这样:
<p>Some text 1</p>
<p>Actual content</p>
试图实现这一目标:
$crawler = new Crawler( $html );
$body = $crawler->filter( 'div.body' );
$body->rewind();
$body = $body->current();
$h2 = $crawler->filter('h2');
$h2->rewind();
$h2 = $h2->current();
$body->removeChild($h2);
但是我得到:
[DOMException] Not Found Error
我错过了什么?
最佳答案
The DomCrawler component eases DOM navigation for HTML and XML documents.
还有:
While possible, the DomCrawler component is not designed for manipulation of the DOM or re-dumping HTML/XML.
DomCrawler 旨在从 DOM 文档中提取详细信息,而不是修改它们。
但是……
由于 PHP 通过引用传递对象,Crawler 基本上是 DOMNode 的包装器s,在技术上可以修改底层 DOM 文档:
// will remove all h2 nodes inside .body nodes
$crawler->filter('.body h2')->each(function ($crawler) {
foreach ($crawler as $node) {
$node->parentNode->removeChild($node);
}
});
这是一个工作示例:https://gist.github.com/jakzal/8dd52d3df9a49c1e5922
关于php - Symfony2 DomCrawler 从 DOMElement 移除节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19177578/
我有一些HTML,如下所示: ... other html stuff ... Stuff 1 Stuff 2 Stuff 3 我正在尝试选择中
我正在使用 Symfony2 DOMCrawler。我在页面上有一个链接。我想通过链接并在那里抓取一些内容。我该怎么做?让代码变成这样 Go there 我知道 $crawler->selectLin
我正在使用 Symfony 的 DomCrawler 从网站获取信息。 在其中一个页面中有一段文本包含非 html 编码的属性,如下所示: Lorem ipsum > amet 当我尝试使用 fil
我在 Symfony 中使用 DomCrawler。 $variable = 'value'; $crawler->filter('table > tr')->each( function (
嗨,这是我在 url 上获取状态之前的 php 代码。 $client = new Client(); $url_to_traverse = 'http://wordcomat.co
我在 Symfony 中使用 DomCrawler。 $variable = 'value'; $crawler->filter('table > tr')->each( function (
是否可以通过DomCrawler获取数据? $cralwer->attr('class') 获取节点的类属性,但是 ->attr('data-something') 或 ->attr('somethi
如何编辑元素的html?我试过这个,但我收到这个错误。 Fatal error: Uncaught InvalidArgumentException: Attaching DOM nodes from
use Goutte\Client; $results = new StdClass; $client = new Client(); $crawler = $client->
如果我在表单的 select 输入中发送了错误的值,我想测试我的应用程序的行为。 这是我的 HTML 表单: (...) text 在我的测试中,使用爬虫获取表单并尝试“选择”
有没有办法使用 Symfony 的 DomCrawler 选择父元素的文本节点? 在 jQuery 中,您可以使用 contents() 方法并检查 nodeType == 3 最佳答案 据我所知,S
我正在尝试使用 DomCrawler 访问网页上的表格,但我不确定我使用的方法是否正确。下面的示例指向一个 Yahoo 站点并使用目标表的 XPath。理想情况下,我将遍历数据的 s,但现在我似乎无法
我有这个 HTML: Some text 1 Header 2 Actual content 我想从中得到除以外的一切所以它看起来像这样: Some text 1 Actual
我在 PHP 中使用 DOMCrawler。我有下面的 HTML。我需要能够选择选项“Text1”,然后提交表单。我有以下代码,但我似乎无法让它工作...我做错了什么? use Goutte\Clie
我用 DomCrawler 收集了一些数据并将其存储在一个数组中,但是当涉及到 è、à、ï 等特殊字符时,他似乎失败了。 例如,当我回显结果时,我得到的是 è 而不是 è。 当我将结果存储在 .
我有一个用于 symfony 应用程序的 phpunit 测试套件。在那个测试文件中,我在不同的测试之间有一些依赖关系,并在依赖之间传递一个 DOMCrawler 对象,这样我就不必每次都导航到它。
HTML 结构: some text some text2 我的 PHP 代码: $client = new Client(); $crawler = $cl
我正在编写一个测试来测试我对 Symfony 的 DomCrawler 的 XPath 的理解: $crawler = new Crawler(); $crawler->add('bar'); $cr
我正在使用 Symfony 的 DomCrawler 组件。我已经成功检索节点、添加和修改 HTML。 但是,我不确定最后如何实际获取 HTML。我试图获取 DomCrawler 更改后的 HTML
我已经使用 Laravel 和 Symfony 一段时间了,我对使用 DomCrawler 进行的测试感到非常满意。现在在工作中我正在使用 CakePHP 3,我对集成测试系统不太满意,它是这样的:
我是一名优秀的程序员,十分优秀!