Ich versuche, mit XML wie diese Probe zu arbeiten:Wie bekomme ich einen bestimmten Knoten in XML nach einem anderen Knotenwert mit PHP?
<?xml version="1.0"?>
<quizReport version="1" xsi:schemaLocation="http://www.ispringsolutions.com/ispring/quizbuilder/quizresults quizReport.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ispringsolutions.com/ispring/quizbuilder/quizresults">
<quizSettings timeLimit="0" maxNormalizedScore="100" maxScore="20" quizType="graded">
<passingPercent>0.6</passingPercent>
</quizSettings>
<summary time="4" percent="0.5" score="10">
<variables>
<variable title="Nom" value="test1411" name="USER_NAME"/>
<variable title="Courriel" value="" name="USER_EMAIL"/>
</variables>
</summary>
<questions>
<trueFalseQuestion usedAttempts="1" awardedPoints="10" maxAttempts="1" maxPoints="10" status="correct" id="{11AD6662-ACF3-4C2B-A3E6-04311C0DD8DB}">
<direction>Le mot de passe de votre compte iNews est indépendant de votre mot de passe radiocanadien géré par ActiveDirectory. </direction>
<answers userAnswerIndex="0" correctAnswerIndex="0">
<answer>Vrai </answer>
<answer>Faux </answer>
</answers>
</trueFalseQuestion>
<trueFalseQuestion usedAttempts="1" awardedPoints="0" maxAttempts="1" maxPoints="10" status="incorrect" id="{F13CF7F1-C830-41AF-A54C-CE78EE383611}">
<direction>Le protocole FTP permet de reprendre un transfert de fichier qui a été arrêté, sans recommencer le transfert depuis le début. </direction>
<answers userAnswerIndex="1" correctAnswerIndex="0">
<answer>Vrai </answer>
<answer>Faux </answer>
</answers>
</trueFalseQuestion>
</questions>
</quizReport>
Jede Frage ein ID-Attribut hat, z.B. {11AD6662-ACF3-4C2B-A3E6-04311C0DD8DB}. Der Status der Frage wird als Text zurückgegeben (d. H. richtig oder inkorrekt).
Mein Ziel ist es, jeden Fragenstatus zu extrahieren und in eine Datenbank einzufügen, in der eine Spalte mit derselben Frage-ID versehen ist (ich bin mit MySQL INSERT vertraut).
Ich habe viele Lösungen versucht (xPath, foreach ...) und ich kann kein Stück Code zum Arbeiten bekommen. Alle meine Bemühungen wurden mit SimpleXMLElement gemacht.
Also, am Ende werde ich den Wert richtig oder falsche in die DB unter einer Säule mit Frage-ID (zB {11AD6662-ACF3-4C2B-A3E6-04311C0DD8DB}) für jeden markiertes einfügen einzelne Frage des XML (die bis zu 100 Fragen enthalten kann). Es wird also eine Art Schleife durch das XML benötigt.
Ich muss darauf hinweisen, dass der Tag-Name truFalseQuestion je nach Art der Frage ändern kann (eine andere Frage könnte zum Beispiel multipleChoiceQuestion sein). Ich habe dieses einfache XML erstellt, um mir Schritt für Schritt verständlich zu machen.
* unter einer Spalte mit der Bezeichnung {11AD6662-ACF3-4C2B-A3E6-04311C0DD8DB} * ... Ich bezweifle, dass MySQL einen solchen Feldnamen zulässt. Du meintest wahrscheinlich ein anderes Feld als * questionid * und dies als Wert. – Parfait
Ich denke, dieser Ansatz erfordert, dass Sie weitere Metadaten hinzufügen, um die möglichen Frage-Tag-Namen aufzulisten. – bassxzero