Unten finden Sie einen PHP -Beispielcode, der die Funktionen xml_set_start_namespace_decl_handler und xml_set_end_namespace_decl_handler funktionen. Dieser Code zeigt, wie eine Erklärung eines Namespace während der XML -Parsen erfasst wird.
<?php
// erstellen XML Parser
$parser = xml_parser_create();
// Legen Sie die Rückruffunktion am Anfang der Namespace -Deklaration fest
xml_set_start_namespace_decl_handler($parser, "startNamespaceHandler");
// Legen Sie die Rückruffunktion am Ende der Namespace -Deklaration fest
xml_set_end_namespace_decl_handler($parser, "endNamespaceHandler");
// XML Saite
$xml_data = <<<XML
<root xmlns:foo="http://gitbox.net/foo" xmlns:bar="http://gitbox.net/bar">
<foo:item>Item 1</foo:item>
<bar:item>Item 2</bar:item>
</root>
XML;
// Analyse XML Daten
if (!xml_parse($parser, $xml_data)) {
die(sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser)));
}
// 释放Parser
xml_parser_free($parser);
// Rückruffunktion zu Beginn der Namespace -Deklaration
function startNamespaceHandler($parser, $prefix, $uri) {
echo "Namespace start: Prefix = {$prefix}, URI = {$uri}\n";
}
// Rückruffunktion am Ende der Namespace -Deklaration
function endNamespaceHandler($parser, $prefix) {
echo "Namespace end: Prefix = {$prefix}\n";
}
?>
Erstellen Sie einen XML -Parser :
Verwenden Sie xml_parser_create (), um eine neue XML -Parserinstanz zu erstellen.
Legen Sie die Rallback -Funktion der Namespace Deklaration fest :
Die Rückruffunktionen sind für die Start- und Endstadien der Namespace -Deklaration durch die XML_Set_Start_NameSpace_DECL_Handler bzw. XML_Set_Start_NameSpace_DECL_Handler und XML_Set_end_Namespace_DECL_Handler -Funktionen festgelegt. Diese Rückruffunktionen werden automatisch aufgerufen, wenn der Parser auf eine Namespace -Deklaration stößt.
Parsing XML -Daten analysieren :
Übergeben Sie die XML -Daten über die Funktion XML_PARSE () an den Parser, um den Parsing -Prozess zu starten. Wenn ein Fehler auftritt, können XML_ERROR_STRING () und XML_get_Current_line_Number () uns helfen, Fehler zu finden und zu melden.
Namespace -Verarbeitung :
Die StartNameSpaceHandler -Rückruffunktion empfängt drei Parameter: die Parser -Instanz, das Präfix des Namespace und die URL. Wenn eine Namespace -Deklaration auftritt, gibt sie das Präfix und die URL des Namespace aus.
Die EndnameSpaceHandler -Rückruffunktion empfängt zwei Parameter: das Präfix der Parserinstanz und den Namespace. Es wird am Ende der Namespace -Deklaration aufgerufen, wodurch das Präfix des Namespace ausgegeben wird.
In praktischen Anwendungen können XML -Dokumente mehrere Namespace -Deklarationen enthalten, sodass Sie die Verarbeitungslogik nach Bedarf anpassen müssen, um sicherzustellen, dass alle Namespaces korrekt verarbeitet werden.
Diese beiden Rückruffunktionen bieten einen leistungsstarken Mechanismus, mit dem Sie den Parsing -Prozess des Namespace präzise steuern können, insbesondere bei der Behandlung komplexer XML -Daten nützlich.
Durch Kombination von XML_Set_Start_Namespace_DECL_Handler und XML_Set_end_Namespace_decl_handler können Sie bei der Parsen von XML -Dokumenten besser verwalten, um sicherzustellen, dass Namespace -Deklarationen genau behandelt werden.