How to select any element inside specific element tag by class. I need to retrieve attribute "name" value from "input" element that inside element "form". In example. there're 2 forms elements named _arrived and _class. I need to retrieve all attribute name value from form _class
$source = '
<form method="post" action"arrived.php" class="_arrived">
<input type="hidden" name="type1" value="value1" autocomplete="off">
<input type="hidden" name="type2" value="value2" autocomplete="off">
<input type="hidden" name="type3" value="value3">
<input type="hidden" name="type4" value="value4">
</form>
<form method="post" action="destiny.php" class="_class">
<input type="hidden" name="type1" value="value1" autocomplete="off">
<input type="hidden" name="type2" value="value2" autocomplete="off">
<input type="hidden" name="type3" value="value3">
<input type="hidden" name="type4" value="value4">
<input type="hidden" name="type5" value="value5">
<input type="hidden" name="type6" value="value6">
<input type="hidden" name="type7" value="value8">
<input type="hidden" name="type8" value="value9">
</form>';
$dom = new DOMDocument();
$dom->loadHTML($source);
$xpath = new DOMXpath($dom);
$items = $xpath->query('//form[@class="_class"]');
$form = $items->item(0);
$element = $form->getElementsByTagName("input");
foreach($element as $elemen){
foreach($elemen as $value){
echo $value->getAttribute('name').'<br>';
}
}
1.First you have to iterate over $elements
one time
2.You have to use action="arrived.php"
instead of action"arrived.php"
to remove warning from your code which is:
Warning: DOMDocument::loadHTML(): error parsing attribute name in Entity, line: 2 in /in/tl53u on line 24
Do like below:
$dom = new DOMDocument();
$dom->loadHTML($source);
$xpath = new DOMXpath($dom);
$items = $xpath->query('//form[@class="_class"]');
$form = $items->item(0);
$element = $form->getElementsByTagName("input");
foreach($element as $elemen){
echo $elemen->getAttribute('name').'<br>';
}
Output:-https://3v4l.org/Ma8bg
You can ignore warnings by using libxml_use_internal_errors(true);
, but best is to solve them. Check reference below:-
Warning: DOMDocument::loadHTML(): htmlParseEntityRef: expecting ';' in Entity