Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie mit xml_set_start_namespace_decl_handler zusammen, verwenden Sie XML_SET_END_NAMEPACE_DECL_HANDLER, um die Namespace -Deklaration zu vervollständigen

Verwenden Sie mit xml_set_start_namespace_decl_handler zusammen, verwenden Sie XML_SET_END_NAMEPACE_DECL_HANDLER, um die Namespace -Deklaration zu vervollständigen

gitbox 2025-05-26

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";
}

?>

Code analysieren

  1. Erstellen Sie einen XML -Parser :
    Verwenden Sie xml_parser_create (), um eine neue XML -Parserinstanz zu erstellen.

  2. 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.

  3. 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.

  4. 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.

Dinge zu beachten

  • 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.