Я хочу создать XML-документ в PHP.
Я выбрал DOMDocument, и я знаю, что мне нужно использовать такие методы, как createElement
, createTextNode
, appendChild
и т. д., чтобы построить мой XML.
Вот как я сгенерировал xml только с одним узлом, содержащим информацию о транспортном средстве:
<?php
$doc = new DOMDocument ( '1.0', 'utf-8' );
$vehicles = $doc->createElement ( "Vehicles" );
$vehicle = $doc->createElement("Vehicle");
$vehicle_num = $doc->createElement("Number");
$vehicle_desc = $doc->createElement("Description");
$vehicle_year = $doc->createElement("Year");
$vehicle_make = $doc->createElement("Make");
$vehicle_model = $doc->createElement("Model");
$vehicle_color = $doc->createElement("Color");
$vehicle_num->appendChild($doc->createTextNode("AW2CM31Y8"));
$vehicle_year->appendChild($doc->createTextNode("2013"));
$vehicle_make->appendChild($doc->createTextNode("VOLKSWAGEN"));
$vehicle_model->appendChild($doc->createTextNode("NEW BEETLE"));
$vehicle_color->appendChild($doc->createTextNode("Black"));
$vehicle_desc->appendChild($vehicle_year);
$vehicle_desc->appendChild($vehicle_make);
$vehicle_desc->appendChild($vehicle_model);
$vehicle_desc->appendChild($vehicle_color);
$vehicle->appendChild($vehicle_num);
$vehicle->appendChild($vehicle_desc);
$vehicles->appendChild($vehicle);
$doc->appendChild ( $vehicles );
header ( "Content-type: text/xml" );
echo $doc->saveXML ();
Но что, если я хочу создать xml, скажем, со 100 узлами, содержащими не только информацию о транспортном средстве, но и другие узлы выше и ниже него. Этот процесс был бы слишком трудоемким.
Итак, есть ли простой способ создания узлов и добавления к ним значений в xml с помощью php? Меня беспокоит количество строк кода, которые я должен написать.
createElement
уже может принимать текст в качестве значения (рядом с тэгом), поэтому вам не нужно создавать такой подробный текстовый узел. Вы также можете использовать SimpleXML, а затем передать его DOMDocument. Однако ответ делает это по-другому, что может дать вам больше информации о том, как решить (с помощью вашего компьютера) общую проблему, стоящую за вашей проблемой. - person hakre   schedule 31.10.2013