你只需要用{}
. 在您的代码中,仅echo $d->firstChild->nodeValue . "<br />";
作为foreach
语句的一部分执行。
/************************************ ******************************/
//info base de données
$host = "-----";
$user = "-----";
$passwd = "----";
$bdd = "-----";
$connect = mysql_connect($host,$user,$passwd) or die("erreur de connexion au serveur $host");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
$dom = new DomDocument;
$dom->load("ResultatTestSuite.xml");
//recuperation des elements par rapport au nom de la balise
/************************************ ******************************/
$order = $dom->getElementsByTagName('order');
foreach($order as $a ) {
echo $a->firstChild->nodeValue . "<br />";
echo "---<br />";
$status = $dom->getElementsByTagName('status');
foreach($status as $b) {
echo $b->firstChild->nodeValue . "<br />";
echo "---<br />";
$message = $dom->getElementsByTagName('message');
foreach($message as $c) {
echo $c->firstChild->nodeValue . "<br />";
echo "---<br />";
$timeTaken = $dom->getElementsByTagName('timeTaken');
foreach($timeTaken as $d) {
echo $d->firstChild->nodeValue . "<br />";
$query2 = "INSERT INTO xml VALUES('" . mysql_real_escape_string($a->textContent) . "','" . mysql_real_escape_string($b->textContent) ."','" . mysql_real_escape_string($c->textContent) . "','" . mysql_real_escape_string($d->textContent) . "')";
$result2 = mysql_query($query2);
}
}
}
}
编辑:
请注意,如果您'
尝试插入某些值,您的代码可能会失败。该符号必须转义。您可以使用mysql_real_escape_string函数(上面我的代码中的链接)。它将转义可能会破坏您的查询的符号并防止 sql 注入。但请注意链接页面上的警告。mysql_* 函数已弃用。
$results = $dom->getElementsByTagName('result');
foreach($results as $res) {
$order = $res->getElementsByTagName('order');
foreach($order as $a ) {
echo $a->firstChild->nodeValue . "<br />";
echo "---<br />";
$status = $res->getElementsByTagName('status');
foreach($status as $b) {
echo $b->firstChild->nodeValue . "<br />";
echo "---<br />";
$message = $res->getElementsByTagName('message');
foreach($message as $c) {
echo $c->firstChild->nodeValue . "<br />";
echo "---<br />";
$timeTaken = $res->getElementsByTagName('timeTaken');
foreach($timeTaken as $d) {
echo $d->firstChild->nodeValue . "<br />";
$query2 = "INSERT INTO xml VALUES('" . mysql_real_escape_string($a->textContent) . "','" . mysql_real_escape_string($b->textContent) ."','" . mysql_real_escape_string($c->textContent) . "','" . mysql_real_escape_string($d->textContent) . "')";
$result2 = mysql_query($query2);
}
}
}
}
}
如果我正确理解 XML 的结构,上面的 foreach 循环应该会更好。您只需要找到所有结果元素,然后在单独的元素中找到:订单、状态等元素。