Ich verwende SimpleXML. Wenn die Benutzereingabe für meine Funktion ungültig ist, ist meine Variable $x
ein leeres SimpleXMLElement-Objekt; Ansonsten hat es eine aufgefüllte Eigenschaft $x->Station
. Ich möchte überprüfen, ob Station
existiert.
Das macht, was ich will, außer es gibt einen Fehler zurück:
Warnung: WeatherData :: parse_weather_xml (): Knoten existiert nicht mehr in WeatherData- & gt; parse_weather_xml () (Zeile 183 von vvdtn.inc).
Okay, also ist isset()
out. Lass es uns versuchen:
Dies verhält sich fast identisch:
Warnung: property_exists (): Knoten existiert nicht mehr in WeatherData- & gt; parse_weather_xml () (Zeile 183 von vvdtn.inc)
Alles klar, gut, ich werde es zu einer Ausnahme machen und sie ignorieren. Ich habe das noch nie gemacht und bin mir nicht sicher, ob ich es richtig mache, aber ich werde es versuchen:
%Vor%Das gibt eine eigene HTML-Seite zurück:
Zusätzliche nicht abgefangene Ausnahme beim Behandeln der Ausnahme.
Original
ErrorException: property_exists (): Knoten existiert nicht mehr in crazy_error () (Zeile 183 von vvdtn.inc).
Zusatz
ErrorException: stat (): stat fehlgeschlagen für /sites/default/files/less/512d40532e2976.99442935 in crazy_error () (Zeile 689 von /includes/stream_wrappers.inc).
Also lache ich jetzt hysterisch und gebe auf. Wie kann ich nach der Existenz einer Eigenschaft eines SimpleXML-Objekts suchen, ohne diesen Fehler in der einen oder anderen Form zu bekommen?
Möchten Sie überprüfen, ob Ihr simplexml
einen bestimmten Knoten enthält oder nicht? - & gt; Zähle sie!
EDIT: Fehler wenn Knoten nicht existiert - & gt; versuche xpath:
%Vor%wird Fehler ausgeben, wenn kein Stationsknoten:
Sagen Sie $xml
ist Ihre simplexml
und station
ist auf der obersten Ebene:
Wenn 'Station' beispielsweise ein Kind von <something>
ist, würden Sie natürlich gehen ...
Überprüfen Sie zuerst, ob Sie versehentlich versucht haben, auf eine Eigenschaft zuzugreifen, ohne vor dem zu überprüfenden Bit zu prüfen (manchmal stimmt die Fehlermeldung nicht mit den Zeilennummern überein).
Dann habe ich esset verwendet und es funktioniert gut:
%Vor%Tags und Links php xml error-handling drupal simplexml