Создать новый XML-файл и записать в него данные?

Мне нужно создать новый XML-файл и записать его на мой сервер. Итак, я ищу лучший способ создать новый XML-файл, записать в него некоторые базовые узлы, сохранить его. Затем откройте его и напишите больше данных.

Я использовал file_put_contents() для сохранения файла. Но, чтобы создать новый и написать некоторые базовые узлы, я не уверен в лучшем методе.

Идеи?

Related of "Создать новый XML-файл и записать в него данные?"

DOMDocument – отличный выбор. Это модуль, специально предназначенный для создания и обработки XML-документов. Вы можете создать документ с нуля или открыть существующие документы (или строки), а также просмотреть и изменить их структуры.

 $xml = new DOMDocument(); $xml_album = $xml->createElement("Album"); $xml_track = $xml->createElement("Track"); $xml_album->appendChild( $xml_track ); $xml->appendChild( $xml_album ); $xml->save("/tmp/test.xml"); 

Чтобы снова открыть и написать:

 $xml = new DOMDocument(); $xml->load('/tmp/test.xml'); $nodes = $xml->getElementsByTagName('Album') ; if ($nodes->length > 0) { //insert some stuff using appendChild() } //re-save $xml->save("/tmp/test.xml"); 

PHP имеет несколько библиотек для XML Manipulation .

Подход Document Object Model (DOM) (который является стандартом W3C и должен быть знаком, если вы использовали его в других средах, таких как веб-браузер или Java и т. Д.). Позволяет создавать документы следующим образом

 <?php $doc = new DOMDocument( ); $ele = $doc->createElement( 'Root' ); $ele->nodeValue = 'Hello XML World'; $doc->appendChild( $ele ); $doc->save('MyXmlFile.xml'); ?> 

Даже если вы еще не сталкивались с DOM, стоит потратить некоторое время на это, поскольку модель используется во многих языках / средах.

С FluidXML вы можете легко создавать и хранить XML-документ.

 $doc = fluidxml(); $doc->add('Album', true) ->add('Track', 'Track Title'); $doc->save('album.xml'); 

Загрузка документа из файла одинаково проста.

 $doc = fluidify('album.xml'); $doc->query('//Track') ->attr('id', 123); 

https://github.com/servo-php/fluidxml