Maison >développement back-end >Tutoriel XML/RSS >Fonctionnement XML de l'extension PHP (2) - Installation et présentation de l'analyseur XML
XML (eXtensible Markup Language) est un format de données A permettant d'interagir avec des documents structurés. Il s'agit d'un standard défini par l'Internet Society (W3C). Des informations sur XML et les technologies associées sont disponibles sur //m.sbmmt.com/.
Cette implémentation d'extension PHP prend en charge expat écrit en PHP par James Clark. Cette boîte à outils peut analyser (mais pas valider) des documents XML. Il prend en charge 3 encodages de caractères fournis par PHP : US-ASCII, ISO-8859-1 et UTF-8. UTF-16 n'est pas pris en charge.
Cette extension crée un analyseur XML et définit des gestionnaires pour différents événements XML. Chaque analyseur XML possède également une poignée de paramètres qui peuvent être ajustés.
Cette extension nécessite l'extension PHP libxml. Cela signifie que --enable-libxml doit être utilisé, bien que cela soit fait implicitement puisque libxml est activé par défaut.
Par défaut, cette extension utilise la couche de compatibilité expatriée. Vous pouvez également utiliser expat. Cette bibliothèque se trouve sur //m.sbmmt.com/. L'utilisation du Makefile dans la bibliothèque expat ne construira pas le fichier de bibliothèque par défaut. Vous pouvez utiliser les règles de construction suivantes pour construire :
libexpat.a: $(OBJS) ar -rc $@ $(OBJS) ranlib $@
.
Le package d’installation du code source RPM d’expat peut être trouvé sur //m.sbmmt.com/.
Cette extension est activée par défaut et peut être désactivée via les options suivantes lors de la compilation : --disable-xml
Ces fonctions sont activées par défaut et utilisent le bundle bibliothèque d'expatriés. Vous pouvez désactiver la prise en charge XML via le paramètre --disable-xml. Si vous compilez PHP en tant que module avec Apache 1.3.9 ou supérieur, PHP utilisera automatiquement la bibliothèque expat fournie avec Apache. Si vous ne souhaitez pas utiliser la bibliothèque expatriée fournie, veuillez utiliser le paramètre --with-expat-dir=DIR lors de l'exécution du script de configuration de configuration de PHP, où DIR doit pointer vers le répertoire racine de l'installation expatriée. .
La version Windows de PHP prend en charge cette extension. Aucune extension supplémentaire n'a besoin d'être chargée pour utiliser ces fonctions.
La définition du gestionnaire d'événements XML est la suivante :
PHP 处理器函数 | 事件描述 |
---|---|
xml_set_element_handler() | 当 XML 解析器遇到开始或结束标签时,会触发元素事件。 开始标签和结束标签有不同的处理器。 |
xml_set_character_data_handler() | 字符数据范指 XML 文档中所有非标记的内容,包括标签之间的空格。 注意,XML 解析器不会添加或删除任何空格,由应用程序(你)来判断空格是否有意义。 |
xml_set_processing_instruction_handler() | PHP 程序员必须熟练掌握处理指令(PI)。是处理指令, 其中php被称为“处理指令对象”。 除所有以“XML”开头的处理指令对象是系统保留的外, 其他的处理函数均是由应用程序指定的。 |
xml_set_default_handler() | 不执行其他处理函数,则会执行缺省的处理函数。 在缺省的处理函数中可取得如 XML 和文档类型声明等信息。 |
xml_set_unparsed_entity_decl_handler() | 未解析的实体声明(NDATA)会调用此处理函数。 |
xml_set_notation_decl_handler() | 符号声明会调用此处理函数 |
xml_set_external_entity_ref_handler() | 当 XML 解析器发现对外部已解析的普通实体的引用时, 会调用此处理函数。例如,引用一个文件或URL。实例可参见 XML 外部实体例程。 |
La fonction de traitement des éléments peut convertir le nom de l'élément en forme pliée (lettres majuscules). La casse est définie comme « une opération de chaîne qui remplace les lettres non majuscules par leurs lettres majuscules correspondantes ». En d’autres termes, en XML, la casse est convertie en majuscules.
Par défaut, tous les noms d'éléments transmis via le gestionnaire sont convertis en lettres majuscules. Chaque analyseur XML peut interroger et contrôler cette fonction via les fonctions xml_parser_get_option() et xml_parser_set_option() respectivement.
Les constantes suivantes sont des codes d'erreur liés au XML (valeurs de retour de la fonction xml_parse()) :
XML_ERROR_NONE
XML_ERROR_NO_MEMORY
XML_ERROR_SYNTAX
XML_ERROR_NO_ELEMENTS
XML_ERROR_INVALID_TOKEN
XML_ERROR_UNCLOSED_TOKEN
XML_ERR OR_PARTIAL_CHAR
XML_ERROR_TAG_MISMATCH
XML_ERROR_DUPLICATE_ATTRIBUTE
XML_ERROR_JUNK_AFTER_DOC_ELEMENT
ML_ERROR_UNDEFINED_ENTITY
X ML_ERROR_RECURSIVE_ENTITY_REF
XML_ERROR_ASYNC_ENTITY
XML_ERROR_BAD_CHAR_REF
XML_ERROR_BINARY_ENTITY_REF
XML_ ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
XML_ERROR_MISPLACED_XML_PI
XML_ERROR_UNKNOWN_ENCODING
XML_ERROR_INCORRECT_ENCODING