[type] => 1
[name] => Country_name [content] => Cuba [node] => Resource id #5
Мы явно выводим из массива только элементы name и content. Можно задать любое форматирование, чтобы HTML выглядел так, как требуется.
Повторим ту же схему для остальных узлов, находящихся ниже Travelpackage, которые надо вывести в виде HTML. Вторая командаXPath //Travelpacka- ge[@name="a"]/* находит все дочерние узлы Travelpackage, для которых па- те="а", и снова записывает результат в $tmpArray.
Снова выводим значения в броузер, циклически обходя массив в помощью
оператора while:
$path = xpath_eval($context, "//iravelpackage[@naine=\"$var[$x]\"]/*");
$tmpArray = $path->nodeset; while (list() = each($tmpArray)) { ti++;
echo("<trxtd>");
echo($tmpArray[$i]->name);
echo("</tdxtd>");
echo($tmpArray[$i]->content);
echo("</td></tr>\n");
}
$i=0;
Следующая команда XPath //Travelpackage[@name="a" ]/Package/* находит все дочерние элементы Package, в которых Travelpackage name = "а". И снова все узлы, найденные при выполнении команды XPath, записываются в StmpArray. Вместо обхода массива в цикле мы обращаемся к его элементам непосредственно:
$path = xpath_eval($context,
"//Travelpackage[@name=\"$var[$x]\"]/Package/*");
=
echo("<tr><td>");
echo($tmpArray[0]->name);
echo("</td><td>");
echo($tmpArray[0]->content);
echo("</tdx/tr>\n");
echo(''<tr><td>");
echo($tmpArray[1]->name);
echo("</td><td>");
echo($tmpArray[1]->content);
echo (" </tdx/t r>\n");
echo( "<t rxtd colspan=2xh rx/tdx/tr>\n");
}
?>
</table> </body> </html>
Если бы длина документа XML была больше, чем два абстрактных набора записей, нам пришлось бы увеличить размер массива $var в соответствии с этой длиной. Конечно, для этого требуется знать размер файла XML. Если размер файла XML неизвестен или меняется, то надо применить к StmpArray функцию sizeof ().
Ниже показан результат выполнения приведенного выше кода (рис.
Модель RAX
Модель RAX работает с ориентированными на записи документами XML и документами XML в стиле SML. Реализация RAX для РНР называется PRAX и должна рассматриваться как альфа- или предварительный альфа- код. В настоящее время PRAX - единственная имеющаяся реализация RAX для PHP. PRAX представляет собой портированный на РНР модуль perl С его помощью можно читать содержимое файла XML, но