2017-05-02 2 views
0

Ich habe diese XML-Datei gemacht, um einige Audio-Tracks Informationen zu verwalten.Suche bestimmter Knoten in eine XML-Datei

<releases> 
<track> 
<uid>betauser</uid> 
<artist>cianci</artist> 
<title>cianci</title> 
<year>2001</year> 
<label>duib</label> 
<cover>DSC_0115.jpg</cover> 
<aside>chitarra_peps</aside> 
<bside>chitarra_peps</bside> 
</track> 
</releases> 

Es wird von Benutzern aktualisiert, die alle Informationen über Tracks mithilfe eines Formulars eingeben. Ich muss in das XML suchen, um dem eingeloggten Benutzer seine eingefügten Spuren anzuzeigen, also möchte ich die Variable $ _SESSION verwenden, um in der XML-Datei zu suchen und nur die vom Benutzer hinzugefügten Knoten zurückzugeben. Ist es möglich mit PHP? Ich speichere die Informationen von $ _SESSION in dem Feld mit der Bezeichnung "uid", so dass dieser Wert für jeden Benutzer unterschiedlich ist.

+0

Sicher. Sie können etwas wie [SimpleXML] (http://php.net/simplexml) verwenden, um die XML-Datei zu lesen. Sie könnten es durchlaufen, und dann dem Benutzer nur die '' Einträge zeigen, die einen '' mit dem gleichen Wert enthalten wie in der Sitzung. – rickdenhaan

+0

* Ich speichere die $ _SESSION Informationen in das Feld mit dem Namen uid * zeige ein Beispiel – splash58

+0

@ splash58 Hier ist der Code .. Diese Lösung ist in einer anderen PHP-Seite implementiert, die das Schreiben der XML verwalten. Hier ein Beispiel für Sie: $ newItem-> appendChild ($ xml-> createElement ('uid', $ _POST ['user_id'])); // Ich benutze dies, um in die XML die $ _SESSION Daten zu schreiben. in einer anderen Seite, die das Skript aufruft, wenn das Formular übermittelt wird, habe ich diesen Code verwendet, um die $ _SESSION Daten zu einem Formularfeld zuzuweisen:

BrP

Antwort

2

können Sie SimpleXML und XPath verwenden Spur zu finden mit spezifizierten uid

$uid = 'betauser'; 

$xml = simplexml_load_string($str); 
$track = $xml->xpath('//track[uid="'. $uid .'"]'); 
echo $track[0]->asXML(); 

demo

+0

Wenn ich die Variable $ uid auf $ _SESSION setze, wird es nicht mehr funktionieren? $ uid = $ _SESSION ['Benutzername'] – BrP

+0

natürlich. Nur sollte es der gleiche Wert sein, der verwendet wurde, als xml gemacht wurde – splash58

+0

Also nur der Benutzer mit dem betauser Benutzernamen kann die Ergebnisse sehen? Dies beeinflusst das Skript generell oder funktioniert es auch für andere Benutzernamen? – BrP

Verwandte Themen