Parse XML-Datei innerhalb von laravel
Möchte ich wählen Sie eine XML-Datei von meinem computer analysiert werden. Das Formular funktioniert und ich kann die Input::file('Datei'); Funktion. Allerdings möchte ich parse das Dokument zugunsten mit dem hochladen nur als temporäre Datei. Wenn ich will analysiert werden, bekomme ich Fehler wie: "nicht Parsen von string". Es scheint, dass der parser kann die Datei dann nicht finden. Ich habe versucht, zwei Parser: SimpleXML und XMLParser(aus dem Orchester).
public function uploadFile(Request $ file){
$data =Input::file('file');
$informationdata = array('file' => $data);
$rules = array(
'file' => 'required|mimes:xml|Max:10000000',
);
$validator= Validator::make($informationdata, $rules);
if($validator->fails()){
echo 'the file has not the correct extension';
} else{
XmlParser::load($data->getRealPath());
}
Ich habe auch versucht zu analysieren, ist es nach dem speichern der Datei.
private function store($data){
$destinationPath = public_path('uploads\\');
$fileName = $data->getClientOriginalName();
$data->move($destinationPath,$fileName);
$xml = simplexml_load_file($destinationPath.$fileName);
}
Vielen Dank im Voraus für die Hilfe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie sagen, "analysieren", was meinst du? Finden Knoten? Knoten löschen? Hinzufügen von Knoten? Oder nur-lese-Knoten?
Weil Sie können finden und Lesen Sie mit der SimpleXMLElement Klasse, aber wenn Sie hinzufügen oder entfernen möchten, empfehle ich Ihnen die Verwendung von DomDocument statt.
Mit SimpleXMLElement das Konstrukt wäre:
Während das DomDocument wäre:
Nachdem Sie das Objekt erstellt, Sie cand behandeln alle das Dokument.
Es ist unbekannt, ob Sie wollen, überprüfen Sie einige aufregende xml-Datei auf Ihrem computer oder umsetzen wollen, die Möglichkeit für den upload von beliebigen xml-Datei, und schreiben Sie einige Logik zu bewältigen diese Aufgabe. Dies ist jedoch nicht der Punkt.
Ich würde empfehlen die Verwendung der eingebauten PHP-core-simplexml_load_file() Funktion, die mir geholfen hat mit dem Projekt. Da wirst du nie bekommen, Laravel, das analysieren von xml in ein paar anständige understendable array oder Objekt durch Anfrage $Datei Injektionen, etc. Das ist gut für die Arbeit mit html-Formularen oder json, die nicht mit xml oder anderen Formaten.
Deshalb sollte man die Arbeit mit dem Objekt, das das Ergebnis von (zum Beispiel) einen solchen code:
Und dann werden Sie brauchen, um zu überprüfen, jeden xml-Knoten und das Feld selbst, das schreiben eine gewisse Logik, da verliert man die Möglichkeit der Verwendung von built-in Laravel Beleuchten\Http\Request-Methode validate ().