[DomCrawler] Added ability to return a default value in text()
and html()
instead of throwing an exception when node is empty.
This commit is contained in:
parent
f2590d196f
commit
6a4ce386fe
@ -5,6 +5,7 @@ CHANGELOG
|
||||
-----
|
||||
|
||||
* Added return of element name (`_name`) in `extract()` method.
|
||||
* Added ability to return a default value in `text()` and `html()` instead of throwing an exception when node is empty.
|
||||
|
||||
4.2.0
|
||||
-----
|
||||
|
@ -570,13 +570,19 @@ class Crawler implements \Countable, \IteratorAggregate
|
||||
/**
|
||||
* Returns the node value of the first node of the list.
|
||||
*
|
||||
* @param mixed $default When provided and the current node is empty, this value is returned and no exception is thrown
|
||||
*
|
||||
* @return string The node value
|
||||
*
|
||||
* @throws \InvalidArgumentException When current node is empty
|
||||
*/
|
||||
public function text()
|
||||
public function text(/* $default = null */)
|
||||
{
|
||||
if (!$this->nodes) {
|
||||
if (0 < \func_num_args()) {
|
||||
return \func_get_arg(0);
|
||||
}
|
||||
|
||||
throw new \InvalidArgumentException('The current node list is empty.');
|
||||
}
|
||||
|
||||
@ -586,13 +592,19 @@ class Crawler implements \Countable, \IteratorAggregate
|
||||
/**
|
||||
* Returns the first node of the list as HTML.
|
||||
*
|
||||
* @param mixed $default When provided and the current node is empty, this value is returned and no exception is thrown
|
||||
*
|
||||
* @return string The node html
|
||||
*
|
||||
* @throws \InvalidArgumentException When current node is empty
|
||||
*/
|
||||
public function html()
|
||||
public function html(/* $default = null */)
|
||||
{
|
||||
if (!$this->nodes) {
|
||||
if (0 < \func_num_args()) {
|
||||
return \func_get_arg(0);
|
||||
}
|
||||
|
||||
throw new \InvalidArgumentException('The current node list is empty.');
|
||||
}
|
||||
|
||||
|
@ -392,6 +392,8 @@ EOF
|
||||
} catch (\InvalidArgumentException $e) {
|
||||
$this->assertTrue(true, '->text() throws an \InvalidArgumentException if the node list is empty');
|
||||
}
|
||||
|
||||
$this->assertSame('my value', $this->createTestCrawler(null)->filterXPath('//ol')->text('my value'));
|
||||
}
|
||||
|
||||
public function testHtml()
|
||||
@ -405,6 +407,8 @@ EOF
|
||||
} catch (\InvalidArgumentException $e) {
|
||||
$this->assertTrue(true, '->html() throws an \InvalidArgumentException if the node list is empty');
|
||||
}
|
||||
|
||||
$this->assertSame('my value', $this->createTestCrawler(null)->filterXPath('//ol')->html('my value'));
|
||||
}
|
||||
|
||||
public function testExtract()
|
||||
|
Reference in New Issue
Block a user