перечисленных элементов XML-документа.

Рассмотрим коллекцию, содержащую описания персон. Если каждую из них мы описываем с помощью таких характеристик, как фамилия, имя, дата рождения и электронный адрес, то структура коллекции «Личности», где хранится информация обо всех известных нам персонах, может быть представлена следующим образом.

<?xml version='1.0'?>

<collection>

<person id='10'>

<name>

<first>Nick</first>

<last>Petrov</last>

</name>

<birth>

<day>23</day>

<month>12</month>

<year>89</year>

</birth>

<email> [email protected]

</email>

</person>

<person id='20'>

<name>

<first>Bob</first>

<last>Ivanov</last>

</name>

<birth>

<day>03</day>

<month>05</month>

<year>90</year>

</birth>

<email> [email protected]

</email>

</person>

</collection>

В дальнейшем, приводя примеры, мы будем использовать этот файл.

Нам необходимо научиться читать, добавлять, изменять и искать информацию, находящуюся в XML- файлах.

Перевод данных XML-файла в объекты и классы PHP

Первое, что нужно сделать, если мы хотим работать с XML-данными в PHP при помощи расширения DOM XML, это перевести имеющиеся данные в объекты и классы DOM. Это можно сделать несколькими способами.

Синтаксис:

object domxml_open_mem (string str)

- В качестве параметра эта функция принимает строку str, содержащую XML-документ. Результатом ее работы является объект класса, называемого DOMDocument.

Синтаксис:

object domxml_open_file (string filename)

- Эта функция обрабатывает XML-файл, имя которого задается параметром filename, и переводит его в объект класса DOMDocument. Доступ к файлу производится только на чтение.

Такие функции, как domxml_open_mem() и domxml_open_file(), как правило, нужно вызывать перед вызовом любых других функций, связанных с расширением DOM.

Эти функции преобразуют XML-файл в дерево объектов. К таким объектам можно обращаться с помощью различных методов. В частности, для выделения корневого элемента используется метод DomDocument->document_element().

Еще существует функция domxml_new_doc(string version), которая создает новый пустой XML-документ. Ее параметром является номер версии создаваемого документа. Но ее мы касаться не будем, а будем считать, что XML-файл уже создан.

<?

//считываем файл 'persons.xml' в строку

$xmlstr = join('',file('persons.xml'));

// переводим строку с xml-файлом

// в дерево объектов. Если операция

// прошла неудачно, то выводим

// ошибку и прекращаем работу.

if(!$dom = domxml_open_mem($xmlstr)) {

echo 'Ошибка при разборе документа ';

exit;

}

// можно посмотреть, как выглядит

// этот объект

print_r($dom);

echo '<hr>';

// выделяем корневой элемент

// дерева объектов.

// В нашем случае это будет

// элемент <collection>

$root = $dom->document_element();

print_r($root);

echo '<hr>';

?>

Итак, каждому элементу XML-файла мы поставили в соответствие какой-то объект. Теперь нужно научиться перемещаться по дереву объектов и обращаться с этими объектами: получать и изменять их значения, находить их потомков и предков, удалять объекты.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату