У меня есть XML-файл record.xml который выглядит как:PHP + XPath запросы получить дочерние узлы и их значения
<record>
<name>john</name>
<gender>male</gender>
<subject>mathematics, english, science</subject>
</record>
<record>
<name>jamie</name>
<gender>female</gender>
<subject>mathematics, science</subject>
</record>
<record>
<name>jack</name>
<gender>male</gender>
<subject>social-science, english</subject>
</record>
Я хочу написать XPATH запрос, который будет возвращать все ребенок NODENAME из <record>
и ценностей всех этих дочерних узлов в ассоциативном массиве.
Для Ex .:
Для выше XML-файл Выходной массив должен быть-
array{ [0] => array{ [name] = 'john', [gender] = 'male', [subject] = 'mathematics, english, science' } [1] => array{ [name] = 'jamie', [gender] = 'female', [subject] = 'mathematics, science' } [2] => array{ [name] = 'jack', [gender] = 'male', [subject] = 'social-science, english' } }
Ниже часть кодекса я написал это возвращение все <record>
дочерние узлы ценности, но не их имя узла.
.......
.......
$xmldoc = new DOMDocument();
$xmldoc->load('record.xml');
$xpathvar = new Domxpath($xmldoc);
$res = $xpathvar->query('//record');
foreach($res as $data){
//$data do not contain node values
$arr[] = $data->textContent;
}
//process $arr to get required format
.....
.....
Мне просто нужен запрос Xpath, который будет возвращать имена дочерних узлов вместе с их значениями.
хорошо, я думаю, это будет достаточно для меня, чтобы продолжить дальше. благодаря – Ajay