Будьте осторожным ожидаемым исключением использования, потому что оно только утверждает, что метод выдал то исключение, не конкретная строка кода в тесте.
я склонен использовать это для тестирования проверки параметра, потому что такие методы являются обычно очень простыми, но более сложными тестами, мог бы лучше быть подан с:
try {
methodThatShouldThrow();
fail( "My method didn't throw when I expected it to" );
} catch (MyException expectedException) {
}
Применяют решение.
Если вы думаете, что мне следует использовать не регулярное выражение, а что-то вроде xpath, скажите как.Это будет что-то вроде
<?php
$doc = new DOMDocument;
if ( !$doc->loadhtml($contents) ) {
echo 'something went wrong';
}
else {
$xpath = new DOMXpath($doc);
foreach($xpath->query('//form[@name="aspnetForm"]//input') as $eInput) {
echo 'name=', $eInput->getAttribute('name'), ' value=', $eInput->getAttribute('value'), "\n";
}
}
Если вы получаете раздражающие предупреждающие сообщения, вы можете использовать @ $ doc-> loadhtml ($ contents); возможно, в сочетании с libxml_use_internal_errors () и libxml_get_errors ()
Как насчет этого -> http://simplehtmldom.sourceforge.net/
* A HTML DOM parser written in PHP5+ let you manipulate HTML in a very easy way!
* Require PHP 5+.
* Supports invalid HTML.
* Find tags on an HTML page with selectors just like jQuery.
* Extract contents from HTML in a single line.
// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');
// Find all images
foreach($html->find('img') as $element)
echo $element->src . '<br>';
// Find all links
foreach($html->find('a') as $element)
echo $element->href . '<br>';
Удачи.
Хорошо. Поскольку вы спросили: вам не следует пытаться анализировать нерегулярные языки с помощью регулярных выражений. Простая эвристика: если язык кажется «вложенным», он не является обычным.
Одним из простых способов может быть что-то вроде следующих строк:
$htmldoc = new DOMDocument;
$htmldoc->loadHTMLFile("local_secure.html");
$forms = $htmldoc->getElementsByTagName("form");
$inputs = $forms->item(0)->getElementsByTagName("input");
foreach ($inputs as $input)
{ do_something_with($input->getAttribute("name"));
do_something_with($input->getAttribute("value")); };
Добавьте проверки ошибок по своему усмотрению. Дополнительная документация: http://www.php.net/book.dom