Bei der Verarbeitung von XML -Daten liefert PHP einen leistungsstarken Satz von XML -Parser -Erweiterungen, wobei XML_PARSE und XML_SET_CHARACTER_DATA_HANDLER wichtige Werkzeuge für das Parsen von XML -Textknoten sind. Diese beiden Funktionen arbeiten zusammen, um Textinhalte in XML effektiv zu lesen und zu verarbeiten. In diesem Artikel wird ein einfaches Beispiel verwendet, um zu zeigen, wie Sie sie verwenden, um XML -Daten zu analysieren.
xml_parse () ist die Kernfunktion, mit der XML -Daten analysiert werden. Es empfängt eine Parser -Ressource und eine XML -Zeichenfolge als Parameter, und jeder Aufruf ist ein Teil davon.
xml_set_character_data_handler () wird verwendet, um eine Rückruffunktion festzulegen, die bei der Begegnung eines Textknotens in XML ausgelöst wird. Das heißt, der gesamte Inhalt des einfachen Textes (CDATA) zwischen Tags wird durch diese Funktion verarbeitet.
Lassen Sie uns ein Beispiel verwenden, um zu zeigen, wie diese beiden Funktionen zum Extrahieren von Textinhalten in XML verwendet werden.
<?php
// 1. Vorbereiten XML Saite
$xmlData = <<<XML
<books>
<book>
<title>PHP Programmierungspraxis</title>
<author>Zhang San</author>
</book>
<book>
<title>Eingehendes Verständnis XML</title>
<author>Li Si</author>
</book>
</books>
XML;
// 2. Initialisieren a XML Parser
$parser = xml_parser_create();
// 3. Speichern Sie extrahierte Textinhalte
$textContents = [];
// 4. Definieren Sie eine Rückruffunktion, die Text verarbeitet
function handleCharacterData($parser, $data) {
global $textContents;
// Leere Zeichen aufräumen
$data = trim($data);
if (!empty($data)) {
$textContents[] = $data;
}
}
// 5. Legen Sie die Funktion zur Verarbeitungsfunktion der Charakterdaten fest
xml_set_character_data_handler($parser, "handleCharacterData");
// 6. Analyse XML Daten
if (!xml_parse($parser, $xmlData, true)) {
die("XML Fehler: " . xml_error_string(xml_get_error_code($parser)));
}
// 7. 释放Parser资源
xml_parser_free($parser);
// 8. Den extrahierten Textinhalt ausgeben
echo "Der extrahierte Textinhalt ist wie folgt:<br>";
foreach ($textContents as $text) {
echo htmlspecialchars($text) . "<br>";
}
?>
Nach dem Ausführen des oben genannten PHP -Skripts lautet die folgende Ausgabe:
Der extrahierte Textinhalt ist wie folgt:
PHP Programmierungspraxis
Zhang San
Eingehendes Verständnis XML
Li Si
Diese Parsing -Methode eignet sich besonders für die Verarbeitung kleiner XML -Daten oder wenn Sie den Textinhalt zwischen Tags weiter verarbeiten möchten. Zum Beispiel:
Crawl News -Titel und Inhalte in RSS -Feeds;
Parses benutzerdefinierte XML -Antworten von https://api.m66.net/data.xml ;
Extrahieren Sie den Text in der Konfigurationsdatei oder Datendatei usw.
Der mit xml_parser_create () erstellte Parser muss die Ressourcen nach der Verwendung über XML_PARSER_FREE () veröffentlichen;
Textinhaltsverarbeitungsfunktionen müssen häufig Whitespace -Zeichen filtern, um Störungen zu vermeiden.
Der XML-Parser von PHP ist ereignisorientiert und erfordert die Registrierung mehrerer Verarbeitungsfunktionen (wie z. B. XML_Set_Element_handler ), um verschiedene XML-Teile zu verarbeiten.
Das Kombinieren von xml_parse und xml_set_character_data_handler kann den Textinhalt in XML sehr flexibel verarbeiten. Unabhängig davon, ob es sich um eine einfache String -Extraktion oder eine komplexe logische Verarbeitung handelt, kann es durch geeignete Rückrufdesign erreicht werden.
Ich hoffe, dieser Artikel kann Ihnen helfen, besser zu verstehen, wie XML in PHP pariert! Wenn Sie Daten mit der Datenbank oder der Webseite weiter kombinieren müssen, können Sie die Codestruktur weiter erweitern, um reichhaltigere Anwendungsfunktionen zu erzielen.