PHP: Разбор XML — Manual

Change language: EnglishBrazilian PortugueseChinese (Simplified)FrenchGermanJapaneseRussianSpanishTurkishOther

Submit a Pull Request Report a Bug

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • Обработчики событий
  • Приведение к одному регистру
  • Коды ошибок
  • Кодировка символов
  • Примеры
    • Пример Структуры Элемента XML
    • Пример отображения XML тегов
    • Пример использования внешних сущностей XML
  • Функции парсера XML
    • xml_error_string — Получение строки ошибки XML-анализатора
    • xml_get_current_byte_index — Получает текущий для XML-анализатора байтовый индекс
    • xml_get_current_column_number — Получает от XML-анализатора номер текущего столбца
    • xml_get_current_line_number — Получает от XML-анализатора номер текущей строки
    • xml_get_error_code — Получает код ошибки XML-анализатора
    • xml_parse_into_struct — Разбор XML-данных и помещение в массив
    • xml_parse — Запускает разбор XML-документа
    • xml_parser_create_ns — Создание XML-анализатора с поддержкой пространств имён
    • xml_parser_create — Создание XML-анализатора
    • xml_parser_free — Освобождение XML-анализатора
    • xml_parser_get_option — Получение значения настройки XML-анализатора
    • xml_parser_set_option — Установка значения настройки XML-анализатора
    • xml_set_character_data_handler — Установка обработчика символьных данных
    • xml_set_default_handler — Установка обработчика по умолчанию
    • xml_set_element_handler — Установка обработчика начального и конечного элементов
    • xml_set_end_namespace_decl_handler — Установка обработчика выхода за пределы пространства имён
    • xml_set_external_entity_ref_handler — Установка обработчика внешних сущностей
    • xml_set_notation_decl_handler — Установка обработчика объявления условных обозначений
    • xml_set_object — Использование XML-анализатора внутри объекта
    • xml_set_processing_instruction_handler — Установка обработчика инструкций препроцессора (PI)
    • xml_set_start_namespace_decl_handler — Установка обработчика входа в пределы пространства имён
    • xml_set_unparsed_entity_decl_handler — Установка обработчика неразобранных объявлений сущностей
  • XmlParser — Класс XmlParser

add a note

User Contributed Notes 1 note

up

down

-32

marcgear at gmail dot com

12 years ago

While this SAX event based parser is better for memory management than the tree based parsers of SimpleXML and DOM, the pull-based parser XMLReader is much easier to use than the xml_parser_* functions, and still doesn't require loading the file into memory.

add a note

PHP и XML — ДокументацияРУ

XML расшифровывается как Extensible Markup Language. XML является подмножеством гораздо более сложного Стандартного языка обобщенной разметки (SGML), но для использования XML вам не нужно ничего знать о SGML. XML определяет синтаксис для создания структурированных документов, которые могут быть прочитаны людьми и компьютерами.

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

Возможно, самый простой способ понять XML — это рассмотреть все области обработки данных, где HTML не может быть использован. Конечно, HTML — это тоже язык разметки, но HTML-документы никогда не бывают структурированными. Дескрипторы HTML (формально известные как теги) и атрибуты — это простые идентификаторы, которые распознаются браузером.

Например, пара согласованных дескрипторов обозначает заголовок верхнего уровня. Браузеры интерпретируют эту пару дескрипторов как указание на то, что текст данного заголовка должен быть отображен крупным, полужирным, а также, возможно, курсивным шрифтом (в зависимости от настройки). Но язык HTML не указывает, является ли текст между этими дескрипторами названием страницы, именем автора, приглашением открыть страницы сайта, уместной здесь цитатой, предложением воспользоваться специальными скидками и т.д. Таким образом, данные дескрипторы сообщают лишь о том, что некоторый текст должен быть отображен с помощью крупного шрифта.

Тот факт, что HTML-код не имеет структуры, означает, что поисковым системам практически невозможно извлечь пользу из содержащихся в коде указаний о том, что является наиболее важным на каждой странице сайта, или что означает каждый фрагмент текста по отношению к другому тексту. Поэтому поисковые системы используют различные методы для вывода содержания текста, но нет гарантии, что любой из этих методов позволит избежать случайных ошибок.

Читателям, незнакомым с XML, обычно следует просмотреть пример XML-кода после прочтения этой вводной информации. На самом деле, XML во многом похож на HTML. В частности, пользователи HTML могут легко понять структуру простого XML-файла, как, например, следующего

Понятно, что XML-код содержит разнообразные описания и атрибуты и имеет такую же иерархическую структуру, как и HTML-код. В XML каждая пара дескрипторов называется элементом.

При создании XML-документа необходимо учитывать следующие минимальные требования к структуре

Документ должен иметь только один корневой элемент, который содержит все остальные элементы, подобно элементам в HTML-документе. Корневой элемент иногда называют элементом документа.

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

Все элементы должны иметь закрывающий элемент-ручку (в этом заключается отличие XML от HTML, где допускаются некоторые неперекрывающиеся элементы). Задача закрытия элемента может быть выполнена с помощью ручки close (например: ), для HTML или XML инструментов, которые не требуют дескриптора выхода (например).

Элементы могут содержать другие элементы, текст и другие данные. Если элемент содержит фрагмент текста, который выглядит как XML-код (например, ), но таковым не является, или если вам нужно исключить разбор символов в тексте, вы должны пометить эти символы символами подстановки.

Стандарт XML также определяет, что XML-документы должны начинаться с заявления XML ID, в дополнение к вышеперечисленным обязательным требованиям, которые относятся к категории требований корректности стандарта SO -CALLED. Это утверждение представляет собой порядок обработки, который указывает тип MIME и номер версии, как показано в примере. Это утверждение необязательно, но некоторые аналитики получают сообщение об ошибке, если оно не найдено. Кроме того, код XML чувствителен к нижнему регистру, а некоторые версии XML, такие как XHTML, требуют, чтобы описания и имена функций состояли из букв нижнего регистра. Хотя в самом стандарте XML не говорится о прописных буквах в описаниях, всегда рекомендуется использовать описания и характеристики в нижнем регистре, если нет срочной причины использовать другой регистр.

Содержание

  1. Практическое применение языка XML
  2. Сравнение API-интерфейсов SAX и DOM
  3. API-интерфейс DOM
  4. DOM XML.
  5. Функции DOM
  6. API-интерфейс SAX
  7. Использование SAX API
  8. Параметры конфигурации SAX
  9. Функции API SAX
  10. API-интерфейс SimpleXML
  11. Использование API Simplexml

Практическое применение языка XML

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

На практике мало кто хранит XML в качестве основного средства представления данных из-за повсеместного распространения реляционных структур данных и языков SQL в представлении данных. Обработка данных XML возможна, но все еще сложна (например, документы можно обрабатывать, создавая и манипулируя узлами XML, а не обрабатывая текст напрямую), но этот подход дает мало преимуществ. В последние годы были достигнуты значительные успехи в том, как XML представлен в браузерах, обычно в форме XHTML, но даже этот подход сталкивается со значительными проблемами.

По этой причине одним из наиболее перспективных современных направлений использования XML является обмен данными между приложениями и организациями. В конце концов, это та область, где PHP может быть незамедлительно полезен. Например, программа на языке C может выполнить некоторую функцию над данными, извлеченными из базы данных, и извлечь результаты в XML-код. Затем он может быть преобразован из PHP в HTML-код для отображения в браузере или другом приложении.

Такой тип потока данных, использующий несколько промежуточных шагов, действительно имеет смысл, когда значительное количество вычислений должно быть выполнено незаметно для пользователя. Это связано с тем, что обычно невозможно создавать большие программы, выполняющие сложные функции и экспортирующие HTML-код, когда существует множество программ, которые необходимо использовать вместо этого.

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

Сравнение API-интерфейсов SAX и DOM

Существует три основных типа API, обычно используемых для обработки XML-кода и XML: SimplexML, модель документа (DOM) (DOM) и Simple API for XML (SAX) Все три раздела включены во все дистрибутивы PHP.

Любой из трех API XML DOM, SAX или SimplexML может быть использован для анализа и изменения XML-документов. DOM также можно использовать для создания или обогащения XML-документов, используя только интерфейс PHP (т.е. без создания раздела руководства XML). Каждый API имеет свои преимущества и недостатки, которые описаны ниже.

SAX.

API SAX менее трудоемкий и более простой в освоении, но по сути рассматривает XML-документ как поток строк. Так, например, если необходимо проанализировать текст рецепта, на PHP можно быстро написать и использовать SAX-анализатор. Например, вы можете усилить элементы списка ингредиентов. Однако было бы очень сложно добавить совершенно новый элемент или функцию, или даже изменить значение одного конкретного ингредиента.

API SAX очень хорошо подходит для выполнения однотипных задач, когда для всех элементов определенного типа требуется одна и та же функция. При преобразовании документа XML в документ HTML для отображения некоторые описательные элементы заменяются описательными элементами HTML. SAX-аналитик обрабатывает документ один раз от начала до конца, поэтому невозможно выполнить обратные действия над данными ввода документа после обработки элемента.

DOM.

Расширение DOM, предусмотренное в PHP, позволяет читать XML-файлы и предоставлять память. Это позволяет вам начать с любого элемента в документе или самого документа (данные называются узлом условий DOM) и восстановить или установить значения дочерних и родительских узлов и их соответствующего текстового содержимого. Часть дерева.

Элементы DOM могут храниться в контейнерах, а также могут быть приписаны в виде текста. API DOM в XML обеспечивает оптимальные результаты, когда доступен весь XML-документ. API SAX также может быть полезен, если поток XML слишком медленный или если необходимо обработать множество различных секций XML как часть одного документа. Расширения DOM также позволяют встраивать деревья в память, что может потребовать значительных ресурсов при обработке больших документов.

simplexml.

С помощью API SimplexML вы можете быстро открыть XML-файл, преобразовать некоторые из найденных элементов в частные типы PHP (переменные, объекты и т.д.) и применять их к этим частным типам так же, как в обычной программе. API SimplexML устраняет сложность многих дополнительных вызовов, требуемых API SAX и DOM, и занимает меньше места в памяти. Кроме того, SimpiexML часто обеспечивает самый простой способ быстрого доступа к XML данным.

Однако SimpiexML имеет некоторые ограничения. В частности, API может вести себя непредсказуемо при работе с элементами и глубокими вставками.

API-интерфейс DOM

Объектная модель документа API Dom — это полностью разработанный API для создания, обработки и анализа XML-документов. Сама технология DOM разработана в соответствии с рекомендациями консорциума W3C.

По сути, идея DOM заключается в том, что каждый XML-документ можно рассматривать как иерархию узлов, подобно ветвям дерева. Для представления структуры программного документа можно использовать древовидную иерархию, которая начинается с корневого элемента, а все остальные элементы являются дочерними. Элементам также могут быть присвоены функции символов и данные. Необработанная информация о дереве считывается из XML-файла и обрабатывается PHP, при этом дерево может быть записано в отдельный XML-файл или сохранено в контейнере.

Расширение PHP DOM основано на анализаторе GNOME-LIBXML2 (аналогично программе LIBXML2 в системе GNOME), так как считается, что он требует меньше памяти, чем другие программы.

DOM XML — это единственный полностью очевидный API в PHP, поэтому для его использования требуется некоторое понимание объектного программирования. Ограниченное количество объектов и методов в этом API означает, что для успешной реализации Dom XML не требуются очень глубокие знания программирования.

DOM XML.

API DOM варьируется в зависимости от ваших целей, но обычно требуются следующие шаги

Откройте новый документ DOM XML или поместите его в оперативную память и прочитайте его.

Обработка документа на уровне узла.

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

Простой пример, демонстрирующий использование некоторых простых функций DOM XML, показан ниже. Убедитесь, что права на файлы учетной записи пользователя, под которой работает сервер, указаны так, чтобы веб-сервер мог записывать файлы в указанный каталог.

Код создает следующий XML-файл

Создание XML-файла с помощью API DOM

Функции DOM

В следующей таблице перечислены наиболее распространенные функции DOM. Эти функции должны быть вызваны до использования любых других функций DOM XML!

Функции верхнего уровня DOM XML

РежимНазначение
domxml_open_mem()Принимает в качестве параметра строку, содержащую XML-документ. Выполняет анализ документов и создает документ
domxml_open_file()Принимает в качестве параметра строку, содержащую имя файла XML. Разбирает файл и создает объект Document
domxml_xmltree().Принимает в качестве параметра строку, содержащую XML-документ. Создает дерево объектов PHP и возвращает объект DOM. Дерево объектов, возвращаемое этой функцией, доступно только для чтения.
domxml_new_doc()Создает новый пустой XML-документ в памяти. Возвращает объект документа.

 

В следующей таблице приведены наиболее важные классы API DOM.

 

Классы XML DOM

КлассНазначение
Документ DOM.Инкапсулирует XML-документ. Он содержит корневой элемент и определение DTD, если таковое имеется.
Внутренний узелИнкапсулирует узел или элемент. Узел может быть корневым элементом или любым элементом внутри корневого элемента. Узлы могут содержать другие узлы, символьные данные и атрибуты.
DomAttr.Вставляет атрибут узла. Атрибут — это определяемая пользователем характеристика узла.

 

В следующей таблице перечислены наиболее важные методы класса DomDocument.

 

Методы классов DomDocument, DomNode и DomAttr

МетодНазначение
DomDocument -> createElement()Создает новый элемент, дескриптором которого является переданная строка. Этот элемент необходимо присоединить к другому элементу с помощью команды DomNode->appendChild()
DomDocument -> createTextNode()Создает новый текстовый узел (объект DomText). Этот узел необходимо присоединить к другому узлу с помощью команды DomNode->appendChild()
DomDocument -> Экономия (на)Выводит XML-документ из памяти в указанный файл.
DomDocument -> saveXML()Выгружает XML-документ из памяти в строку. Необязательный параметр — DomNode.
DomNode -> appendChild()Добавляет узел к другому узлу.
DomNode -> removeChild()Удаляет дочерний узел
DomAttr -> name()Возвращает имя атрибута
DomAttr -> значение()Возвращает значение атрибута

 

API-интерфейс SAX

Так называемый Plain XML API широко используется для разбора XML-документов. Этот API является событийно-ориентированным. Это означает, что парсер SAX вызывает определенную функцию, когда обнаруживает, что произошло определенное событие в потоке событий.

История SAX API очень интересна, особенно в сравнении с DOM API. Во-первых, SAX API был разработан не под эгидой официального органа по стандартизации, а группой разработчиков из списка рассылки XML-DEV. Многие из них уже реализовали свои собственные парсеры XML (в основном на Java). . . без использования стандартного API.

API SAX работает по принципу использования нескольких обработчиков событий. Эти обработчики прерываний определяются с помощью PHP-кода. Когда синтаксический анализатор просматривает XML-документ, он распознает фрагменты XML-кода, такие как элементы, символьные данные и внешние сущности. Каждый случай распознавания инициируется как событие. Если парсеру задана функция, которая будет вызываться после наступления определенного события, то парсер приостановит обработку этой функции после наступления указанного события.

Данные, полученные от синтаксического анализатора, относящиеся к определенному событию, предоставляются вызываемой функции. Когда обработчик события завершает обработку события, SAX-парсер продолжает последовательно обрабатывать документ, вызывая функции, связанные с событием, пока не достигнет конца документа. Этот процесс остается однонаправленным на протяжении всей обработки от начала до конца документа, поскольку аналитик не может вернуться назад и переделать какую-либо часть документа.

До версии 5 в PHP использовалась программа expat Джеймса Кларка, широко распространенный инструмент для разбора XML. Более подробную информацию об экспатах можно найти на сайте Кларка (www.jclark.com/xml). Однако, если интерпретатор PHP скомпилирован с библиотекой libxml2, весь SAX-код для PHP4 и PHP5 может быть использован без проблем.

К сожалению, термин парсер используется для обозначения как программных библиотек, таких как libxml2, так и языкового блока функций обработки XML в языке PHP. Однако последняя интерпретация является более конкретной, когда речь идет о создании и вызове парсеров. Последняя интерпретация также включена в описание всех функций PHP XML, использующих термин парсер.

Использование SAX API

Использование SAX API зависит от цели, но наиболее распространенными являются следующие методы

Укажите тип обрабатываемого события.

Опишите функцию-обработчик для каждого события. В большинстве случаев вам потребуется создать обработчики для начального и конечного элементов, а также обработчики символьных данных.

Используйте xml_parser_create() для создания анализатора и вызовите его с помощью xml_parse().

Используйте xml_parser_free(), чтобы освободить память, занимаемую парсером.

Простой пример, использующий все основные функции XML, показан ниже (XML-файл, используемый в этом примере, — это файл test_dom.xml, созданный выше).

PHP-код для получения дерева XML-документов с помощью SAX API

Параметры конфигурации SAX

Для парсера XML, используемого совместно с API SAX, существует два изменяемых варианта конфигурации. Один из них имеет одинарный регистр, а другой — вариант целевой кодировки.

Опция чувствительности к регистру была сохранена в результате нескольких решений, принятых в прошлом, и может быть недействительной сегодня, поскольку XML окончательно объявлен чувствительным к регистру. Старые версии SGML и HTML не были чувствительны к регистру и использовали преобразования с учетом регистра (преобразование всех символов в верхний или нижний регистр во время разбора) для получения согласованных результатов для сравнения.

Это позволяет браузеру сопоставить описание с описанием. . Однако использование синхронизации регистра оказалось проблематичным из-за проблем интернационализации, и после долгих дебатов язык XML был объявлен чувствительным к регистру. Если включена опция чувствительности к регистру, все имена узлов, передаваемые в обработчики событий, преобразуются путем замены всех заглавных букв на строчные. Например, имя узла mynode передается в обработчик события как MYNODE. Если опция преобразования регистра отключена, начальный дескриптор не будет совпадать с конечным дескриптором. .

В отличие от спецификации XML 1.0, использование опции case-convergence разрешено по умолчанию. Если использование этой опции не отключено в xml_parser_set_option(), дескриптор передается обработчику события после преобразования нижнего регистра в верхний.

Обработчик событий получает текстовые данные от анализатора XML в одной из трех кодировок: ISO-8859-1, US-ASCII или UTF-8. По умолчанию используется кодировка ISO-8859-1. Кодировка текста, передаваемого обработчику события, называется целевой кодировкой. По умолчанию целевая кодировка совпадает с кодировкой, используемой в исходном документе, называемой исходной кодировкой. Если вам необходимо обрабатывать текст в кодировке, отличной от сохраненной, вы можете изменить значение параметра целевой кодировки.

Значение параметра кодировки выбирается и устанавливается с помощью функций xml_parser_get_option() и xml_parser_set_option(). Константа XML_OPTION_CASE_FOLDING используется для управления функцией нормализации, а целевая кодировка задается константой X ML_OPTlON_TARGET_ENCODING.

В следующем примере показано, как создать парсер XML, который читает данные ASCII, переопределяет опцию единственного регистра и выводит результаты в кодировке UTF-8.

Функции API SAX

В следующей таблице перечислены наиболее важные функции SAX и их назначение.

 

Функции SAX XML API

РежимНазначение
xml_parser_create ([encoding])Создает новый экземпляр парсера XML. Программа может в любой момент определить различные синтаксические анализаторы. Возвращаемым значением является экземпляр парсера XML, а в случае неудачи функция возвращает false. Он принимает один необязательный параметр — идентификатор кодировки символов (например, UTF-8). Если кодировка символов не указана, по умолчанию используется кодировка ISO-8859-1.
xml_parse (parser, data, [last])Вызывает и выполняет парсер XML. Параметрами являются парсер, созданный с помощью функции xml_parser_create(), буквенно-цифровые символы, содержащие XML-документ, и необязательный последний флажок. Флажок last можно использовать для указания того, что текущий сегмент данных является последним сегментом, обрабатываемым этим синтаксическим анализатором.
xml_get_error_code (parser)Если во время работы парсера возникнет проблема, парсинг завершится неудачно. Вызов и выполнение этой функции определит код ошибки
xml_error_string (код ошибки)После получения кода ошибки, возвращаемого функцией xml_get_error_code(), возвращает строку, содержащую описание ошибки, которое можно использовать для записи в файл журнала.
xml_set_element_handler (parser, start_element_handler, end_element_handler)Устанавливает два оператора, которые на самом деле являются функциями. Первый — start_element_handler, который обращается к ассоциативному массиву имен элементов и атрибутов элементов, а второй — end_element_handler, который обеспечивает полный анализ элемента.
xml_set_character_data_handler (parser, cd_handler)Определяет функцию-обработчик, которая вызывается каждый раз при обнаружении символьных данных. Функция обработчика принимает в качестве параметров алфавитно-цифровые символы, содержащие символьные данные
xml_parser_free (parser)Освобождает память, связанную с парсером, созданным функцией xml_parser_create().
xml_set_default_handler (Parser, handler)Определяет оператор по умолчанию, который будет применяться. Если для события не задан оператор, вызывается оператор по умолчанию, если он указан. Принимает в качестве параметров индикаторы объектов аналитики и функции обработки

 

API-интерфейс SimpleXML

API Simplexml был впервые представлен в PHP 5 и рассматривался как средство сопоставления объектов. API не основан на организационных критериях и в первую очередь направлен на облегчение и сокращение использования памяти, даже при потере гибкости. Если вы хотите прочитать данные из XML-документа и создать другие данные, API SimplexML решает эту задачу с минимальным количеством строк кода по сравнению со всеми другими возможными подходами.

API SimplexML основан на следующей идее: программе одновременно передается весь XML-документ, выполняется анализ документа и все результаты обработки документа сохраняются в памяти. Однако документ хранится в памяти не как объект (содержимое должно быть обработано, прежде чем его можно будет использовать), а как отдельный элемент, хранящийся в переменной PHP и поэтому сразу доступный для использования. Конечно, во многих задачах, использующих API DOM, нет необходимости фактически перебирать каждый узел, узел и узел документа, но нет необходимости применять одну и ту же функцию к четко определенной группе узлов. Это означает, что SimplexML в конечном итоге является особым компромиссом между SAX и DOM-подходом к PHP.

Использование API Simplexml

При использовании API Simplexml, Simplexml_load_string () или Simplexml_lead_file (), код XML сначала считывается в какой-либо форме (строка или файл) и присваивается переменной. Это создает локальный объект, к которому можно получить прямой доступ. Следующий пример показывает, как API simplexml может быть использован для восстановления значений переменных из XML-файла с помощью нескольких строк кода.

Как исправить строку, которая не может быть проанализирована как XML Ошибка PHP

Как исправить строку, которая не может быть проанализирована как XML Ошибка PHP

В этой статье описывается устранение неполадок, связанных с сообщением об ошибке «Строка не может быть проанализирована как XML» в PHP.

Содержание
  • Проблема
  • Разрешение
Проблема

При попытке проанализировать XML-данные в PHP-скрипте появляется следующее сообщение об ошибке:

 Неустранимая ошибка: Неперехваченное исключение «Исключение» с сообщением «Строка не может быть проанализирована как XML» в  FILENAME  в строке  X  
Разрешение

Наиболее вероятной причиной этой ошибки является то, что XML-данные, которые вы пытаетесь обработать, недействительны. Кроме того, XML-данные могут содержать нестандартные символы или использовать другую кодировку набора символов.

Существует несколько веб-сайтов, которые могут проверять XML-данные. Например, веб-сайт http://www.xmlvalidation.com может проверять базовый синтаксис XML, а также проверять XML-данные по внешней схеме, такой как документы DTD (определение типа документа).

Получить PHP-хостинг

Детали статьи

  • Уровень: Средний
Другие статьи в этой категории
  • Что такое PHP?
  • Основы PHP-скриптов
  • Просмотр настроек PHP
  • Изменение настроек и версий PHP
  • Пользовательские файлы php.ini
  • Использование директив php.ini
  • Пользовательские файлы .htaccess для настроек PHP
  • Использование директив PHP в пользовательских файлах .htaccess
  • Запуск PHP-скриптов из заданий cron
  • Использование PHP для отправки сообщений электронной почты
  • PHP включает пути
  • Пакеты ГРУША
  • Определение доступности функции PHP
  • «Внутренняя ошибка сервера 500» при запуске PHP
  • Сообщение об ошибке «Строка не может быть проанализирована как XML» в PHP
  • Использование расширения Exif в PHP
  • Общие проблемы после обновления PHP
  • Использование пользовательского файла php. ini для заданий cron cPanel
  • Использование сеансов PHP
  • ionCube Поддержка загрузчика PHP
  • Указание набора символов MySQL в PHP
  • Сообщение об ошибке «Невозможно выделить память для пула» в PHP
  • Оптимизация Symfony с помощью APC
  • Использование расширения интернационализации в PHP
  • Установка компоновщика PHP
  • Определение того, установлен ли APC на сервере
  • Использование API MailChimp с PHP
  • Сообщение об ошибке «Исчерпан допустимый размер памяти» в PHP
  • Использование ionCube Loader с разными версиями PHP
  • Включение кэширования кода операции PHP
  • Отправка электронной почты с помощью PHPMailer
  • Усиление защиты PHP 7 и более ранних версий
  • Пользовательские настройки PHP для каждого каталога с файлами .user.ini
  • Загрузчик PHP ionCube недоступен на PHP 8.0
  • Изменение версии PHP для определенного каталога

Показать больше

Статьи по теме
  • Просмотр настроек PHP
  • «500 Internal Server Error» при запуске PHP

Показать больше

Развивайте свой веб-бизнес

Подпишитесь, чтобы получать еженедельные советы, стратегии и новости, необходимые для развития вашей сети бизнес.

Бесплатно. Отписаться в любое время.

Была ли эта статья полезной для вас? Тогда вам понравится наша поддержка. Испытайте преимущества хостинга A2 уже сегодня и получите предварительно защищенный и предварительно оптимизированный веб-сайт. Ознакомьтесь с нашими планами веб-хостинга сегодня.

Изучите синтаксический анализатор XML на основе дерева и многое другое

В наших предыдущих уроках мы рассмотрели, что такое XML-парсер PHP и как его использовать. Мы также познакомились с парсером PHP SimpleXML.

Это расширение считается одним из самых популярных способов заставить PHP читать XML-файлы, поскольку оно бесплатное для использования и встроено в PHP, начиная с версии 5. В этом уроке мы предоставим вам удобный список функций PHP SimpleXML. .

Содержание
  • 1. PHP SimpleXML: Основные советы
  • 2. Список функций
  • 3. Методы итерации
  • 4. PHP SimpleXML: Обзор

PHP Simple XML: Основные советы

  • Использование синтаксического анализатора необходимо, если вы хотите, чтобы PHP читал файлы XML.
  • SimpleXML — это анализатор PHP XML, встроенный в PHP 5 и более поздние версии.
  • Он основан на дереве (в отличие от событий), рассматривая документ как XML-дерево: структурированный набор массивов и объектов.
  • Этот синтаксический анализатор очень полезен, если вы знаете внутреннюю структуру используемого XML-файла.

Список функций

Внимательно просмотрите список функций, используемых PHP для анализа файлов XML. Таблица организована в алфавитном порядке, поэтому вы всегда можете воспользоваться ею, чтобы быстро найти то, что вам нужно:

.
.
Функция Описание
__construct() Создать новые объекты SimpleXMLElement
добавить атрибут() Добавьте атрибуты к элементам SimpleXML
addChild() Добавьте дочерние элементы к элементам SimpleXML
какXML()
Возвращает правильно сформированные строки XML (XML версии 1) из объектов SimpleXML
атрибуты() Возврат атрибутов/значений элементов
дети() Возврат дочерних элементов указанных узлов
счет() Подсчет дочерних элементов указанных узлов
getDocNamespaces() Возвращает пространства имен, которые были ОБЪЯВЛЕНЫ в документе
getName() Возвращаемое имя тегов XML, на которые ссылались элементы SimpleXML
getNamespaces() Возврат пространств имен, которые использовались в документе
registerXPathNamespace() Создать контекст пространства имен для следующего запроса XPath
сохранитьXML() Псевдоним для функции asXML()
симплексмл_импорт_дом() Возврат объектов SimpleXMLElement из узлов DOM
simplexml_load_file() Преобразование файлов XML в объекты SimpleXMLElement
simplexml_load_string() Преобразование строк XML в объекты SimpleXMLElement
xpath() Запуск запросов XPath к данным XML

Плюсы

  • Простой дизайн (без лишней информации)
  • Качественные курсы (даже бесплатные)
  • Разнообразие функций

Основные характеристики

  • Программы наноградусов
  • Подходит для предприятий
  • Платные сертификаты об окончании

ЭКСКЛЮЗИВ: СКИДКА 75%

Профи

  • Удобная навигация
  • Нет технических проблем
  • Кажется заботиться о своих пользователях

Основные характеристики

  • Огромное разнообразие курсов
  • 30-дневная политика возврата средств
  • Бесплатные сертификаты об окончании

ОТ 12,99$

Pros

  • Отличный пользовательский опыт
  • Предлагает качественный контент
  • Прозрачные цены

Основные функции

  • Бесплатные сертификаты об окончании
  • Ориентированы на навыки работы с данными
  • Гибкий график обучения

СКИДКА 75%

Методы итераций

Есть также несколько итерационных функций, которые вы можете использовать в PHP при анализе XML-файлов. Посмотрите, как они называются и что они делают:

Функция Описание
текущий() Возврат текущего элемента
получитьдетей() Возврат дочерних элементов текущего элемента
hasChildren() Проверить, есть ли у текущего элемента дочерние элементы
ключ() Возврат текущего ключа
следующий() Перейти к следующему элементу
перемотка назад() Перемотать назад к первому элементу
действительный() Проверить, не является ли текущий элемент недопустимым

PHP SimpleXML: сводка

  • Парсеры необходимы для чтения файлов XML.
  • PHP 5 и все более новые версии имеют встроенный анализатор XML под названием SimpleXML.
  • Он обрабатывает документы XML как наборы массивов и объектов, создавая на их основе древовидную карту XML.