如何提取HTML标记值?
HTML:
<input type="hidden" name="text1" id="text1" value="need to get this">
Run Code Online (Sandbox Code Playgroud)
PHP:
$homepage = file_get_contents('http://www.example.com');
$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;
@$doc->loadHTML($homepage);
$xpath = new DOMXpath($doc);
$filtered = $xpath->query("//input[@name='text1']");
Run Code Online (Sandbox Code Playgroud)
我怎样value才能"需要得到这个"?
更新:
我得到了它的工作,并希望它也会帮助其他人.在上面的代码之后,我得到了以下值:
echo $filtered->item(0)->getAttribute('value');
Run Code Online (Sandbox Code Playgroud)
Mar*_*nen 35
XPath可以完成获取value属性的工作$xpath->query("//input[@name='text1']/@value");.然后,您可以遍历属性节点的节点列表并访问$value每个属性节点的属性.
TRO*_*DON 11
看看DOM的这种方法 http://www.php.net/manual/en/domelement.getattribute.php
var array_result = arrray();
foreach (filtered as $key => $value){
$array_result[] = $value->getAttribute('ID');
}
Run Code Online (Sandbox Code Playgroud)
我对此不熟悉PHP语法,但要选择value属性,您将使用以下xpath:
//input[@name='text1']/@value
Run Code Online (Sandbox Code Playgroud)
但是xpath不返回字符串,它返回节点.你想要nodeValue节点,所以如果PHP遵循约定,那么代码将是:
$xpath->query("//input[@name='text1']/@value")->item(0).nodeValue;
Run Code Online (Sandbox Code Playgroud)
出于学习目的,请记住,您始终检查nodeValue酒店.因此,如果您想要相同元素的名称,您可以使用:
$xpath->query("//input[@name]/@name")->item(0).nodeValue;
Run Code Online (Sandbox Code Playgroud)
在查询nodeValue属性之前,您可能希望确保查询返回非null值.
| 归档时间: |
|
| 查看次数: |
58338 次 |
| 最近记录: |