integer xml_get_error_code(resource parser)
Функция xml_get_error_code возвращает код последней ошибки, обнаруженной заданным анализатором. Для всех ошибок заданы определенные константы (табл. 20.2). Если ошибки нет, возвращается константа XML_ERROR_NONE. Если задан неверный анализатор, возвращается значение FALSE.
Таблица 20.2. Константы ошибок XML
XML_ERROR_ASYNC_ENTITY
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
XML_ERROR_BAD_CHAR_REF
XML_ERROR_BINARY_ENTITY_REF
XML_ERROR_DUPLICATE_ATTRIBUTE
XML_ERROR_EXTERNAL_ENTITY_HANDLING
XML_ERROR_INCORRECT_ENCODING
XML_ERROR_INVALID_TOKEN
XML_ERROR_JUNK_AFTER_DOC_ELEMENT
XML_ERROR_MISPLACED_XML_PI
XML_ERROR_NONE
XML_ERROR_NO_ELEMENTS
XML_ERROR_NO_MEMORY
XML_ERROR_PARAM_ENTITY_REF
XML_ERROR_PARTIAL_CHAR
XML_ERROR_RECURSIVE_ENTITY_REF
XML_ERROR_SYNTAX XML_ERROR_TAG_MISMATCH
XML_ERROR_UNCLOSED_CDATA_SECTION
XML_ERROR_UNCLOSED_TOKEN
XML_ERROR_UNDEFINED_ENTITY
XML_ERROR_UNKNOWN_ENCODING
boolean xml_parse(resource parser, string data, boolean final)
Функция xml_parse сканирует данные и вызывает зарегистрированные программы обработки. Объем данных, заданных аргументом size, не ограничен. За один прием можно проанализировать как целый файл, так и несколько байтов. Обычно анализ производится в цикле.
Аргумент final является необязательным и позволяет программе обработки обнаружить окончание файла.
boolean xml_parse_into_struct(resource parser, string data, array structure, array index)
Функция xml_parse_info_struct (листинг 20.11) обрабатывает весь документ и создает массив с описанием документа. В качестве ссылки необходимо передать аргумент structure. В него добавляются элементы, пронумерованные начиная с нуля. Каждый элемент содержит ассоциативный массив, проиндексированный по значениям tag, type, level и value. Аргумент index является необязательным. При этом также необходимо передавать ссылку. Она будет содержать конкретные теги, найденные в файле XML. Значением каждого элемента является перечень целых чисел, которые являются индексами массива structure. Это позволит вам проиндексировать элементы массива structure, соответствующие заданному тегу. Работая с функцией use xml_parse_into_struct, вы можете вызывать любую установленную программу обработки.
Листинг 20.11. Функция xml_parse_into_struct
<?php
// создать программу обработки if(!($parser = xml_parser_create()))
{
print("Программу обработки создать невозможно!<br>"); exit();
}
//принять целый файл
$data = file_get_contents("corephp.xml"); // проанализировать файл и поместить результат в массив xml_parse_into_struct($parser, $data, $structure, $index); // удалить программу обработки xml_parser_free($parser); print("Структура:<br>" .
"<table border="1">" -
"<tr>" .
"<th>tag</th>" . "<th>type</th>" . "<th>level</th>" . "<th>value</th>" . "<tr>");
foreach($structure as $s)
{
if(!isset($s["value"]))
{
$s["value"] = "";
}
print("<tr>" .
"<td>{$s["tag"]}</td>" .
"<td>{$s["type"]}</td>" . "<td>{$s["level"]}</td>" . "<td>{$s["value"]}</td>" . "<tr>");
}
print("</table>");
print("Ссылка на элементы:<br>"); foreach($index as $key=>$value)
{
print("$key:"); foreach($value as $i)
{
print(" $i");
}
print("<br>");
}
resource xml_parser_create(string encoding)
Вызов функции xml_parser_create является первым шагом при анализе XML-документа. Она возвращает идентификатор, который будет впоследствии использоваться в работе со многими функциями. Необязательный аргумент encoding позволяет задавать кодировку, которая будет использоваться анализатором. Тремя допустимыми кодировками являются ISO-8859-1, US-ASCII и UTF-8. Кодировка ISO-8859-1 устанавливается по умолчанию.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. XML-Документ. Часть Седьмая.
10-05-2015
<< Предыдущая статья | Следующая статья >> |
PHP. XML-Документ. Часть Шестая. | PHP. XML-Документ. Часть Восьмая. |