假设HTML代码如下:
<select name="some_name">
<option value="1">1</option>
<option value="2">2</option>
<option value="3" selected="selected">3</option>
<option value="4">4</option>
</select>
我需要从中提取带有属性selected="selected"的选项标签。我该怎么做?到目前为止,我有以下内容:
$string = file_get_contents('test.html');
include 'htmlpurifier-4.0.0-standalone/HTMLPurifier.standalone.php';
$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Doctype', 'XHTML 1.0 Strict');
$purifier = new HTMLPurifier($config);
$string = $purifier->purify($string);
$dom = new DOMDocument();
$dom->loadHTML('<?xml encoding="UTF-8">' . $string);
$dom->preserveWhiteSpace = false;
$num = 0;
$optionTags = $dom->getElementsByTagName('option');
foreach ($optionTags as $o) {
if ($o->hasAttribute('selected')
&& 'selected' === $o->getAttribute('selected')) {
$num = $o->nodeValue;
}
}
echo $num;
但这并不起作用。$num之后仍然等于零。
==
而不是===
,看看是否有效,如果不行,我会运行测试并尝试让它工作。 - Anthony Forloneyvar_dump
来查看$string
和$dom
的内容,因为有些东西不起作用。我没有使用过HTMLPurifier
,使用它的原因是什么? - Anthony Forloney