Как извлечь данные из строки HTML в PHP - PullRequest
0 голосов
/ 18 марта 2019

У меня есть следующая HTML-строка, в которой мне нужно получить доступ к значению определенного id.

Строка выглядит следующим образом

<form name="aspnetForm" method="post" action="userview.aspx" id="aspnetForm">
	<div>
	<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
	<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
	<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />
	<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="test_value" />
	</div>

Теперь, чтобы получить к нему доступ, я написал следующий код

$doc = new DOMDocument();
	@$doc->loadHTML($str);
	$finder = new DomXPath($doc);
	$spanner = $finder->query("//*[contains(@id, '__VIEWSTATE')]");
	foreach ($spanner as $node) 
    	{
   			 echo $node->nodeValue;
    	}

где str - моя строка. Теперь каждый раз, когда я запускаю его, он возвращает пустое значение

1 Ответ

1 голос
/ 18 марта 2019

Попробуйте это в этой query части изменено

$html = '<form name="aspnetForm" method="post" action="userview.aspx" id="aspnetForm">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="adsadsadsdsadsd" />
</div>';
 $doc = new DOMDocument;
 $doc->loadHTML($html);
 $xpath = new DOMXpath($doc);
 $val= $xpath->query('//input[@type="hidden" and @id = "__VIEWSTATE"]/@value' 
 );
print_r($val[0]->nodeValue);
...