<?xml version="1.0" encoding="UTF-8"?>
<testSuiteResults>
<testSuite>
<startTime>13:46:06</startTime>
<status>FAILED</status>
<testSuiteName>Web TestSuite</testSuiteName>
<timeTaken>13907</timeTaken>
<testRunnerResults>
<testCase>
<reason>Failing due to failed test step</reason>
<startTime>13:46:06</startTime>
<status>FAILED</status>
<testCaseId>2c0c10d3-f76f-43ae-900d-6e64bb96203f</testCaseId>
<testCaseName>CorTestCase</testCaseName>
<timeTaken>7021</timeTaken>
<testStepResults>
<result>
<message>Step 1 [www.coriolis.eu.org] OK: took 2309 ms</message>
<name>www.coriolis.eu.org</name>
<order>2</order>
<started>13:46:06.266</started>
<status>OK</status>
<timeTaken>2309</timeTaken>
</result>
</testSuite>
</testCase>
</testSuiteResults>
嗨,我有这个XML文件,我试图在数组中获取“status,timeTaken”标签。我用这个函数:
function XMLtoARRAY($fichier,$item,$champs) {
// on lit le fichier
if(file_exists($fichier)){
if($chaine = @implode("",@file($fichier))) {
// on éclate les objets <item>
$tmp = preg_split("/<\/?"."\/".$item.">/",$chaine);
// $tmp4 = preg_split("/<\\/?".$item.">/", $chaine);
//for($j=0;$j<sizeof($tmp4)-1;$i+=1){
// on parcours les <item>
for($i=0;$i<sizeof($tmp)-1;$i+=1){
// on recherche les champs demandés
foreach($champs as $champ) {
$tmp2 = preg_split("/<\/?".$champ.">/",$tmp[$i]);
// on ajoute l'élément au tableau
$tmp3[$i][$champ] = @$tmp2[1];
}
}
//}
// retourne le tableau associatif
return $tmp3;
}
}else{
return "Le fichier n'existe pas";
}
}
问题是当我想把它放在我的数据库空行中时。这是我的数据库功能:
function XMLtoSQL($fichier,$item,$champs,$test=0){
//On recupère le tableau PHP correspondant au fichier XML
$xml = XMLtoARRAY($fichier,$item,$champs);
if(is_array($xml)){
getconnection();
$nom_table="result";
$requetes_insert=array();
$requete="";
foreach($xml as $un_enregistrement){
$requete="INSERT INTO ".$nom_table;
$col_name="(";
$value="(";
foreach($un_enregistrement as $champs=>$valeur){
$col_name.=$champs.",";
$value.="\"".$valeur."\",";
}
//$col_name=substr($col_name,0,-1);
$value=substr($value,0,-1);
$requete.=" VALUES ".$value.")";
$requetes_insert[]=$requete;
}
//Si tout est ok on vide la table
/* $vidange_table="TRUNCATE TABLE ".$nom_table;
if($test==0){
$res_vidange=mysql_query($vidange_table);
if(!$res_vidange){
return "Erreur lors de la vidange de la table : ".$nom_table;
}
}
*/
//Puis on execute les requêtes une par une
foreach($requetes_insert as $key=>$une_requete){
if($test==0){
$res_requete=mysql_query($une_requete);
if(!$res_requete){
return "Erreur lors de l'execution de la requete num ".$key." : ".$une_requete;
}
}
}
return "Importation des ".sizeof($requetes_insert)." requetes reussie";
}else{
return "L'erreur suivante a ete detectee : ".$xml;
}
}
我想删除这些空行。谢谢
答案 0 :(得分:0)
PHP有一个你应该使用的内置XML解析器,而不是尝试编写自己的解析器(在这种情况下,遇到格式错误的文件结构时可能会出错)。
有一个whole "book" about this,可以在PHP手册中找到(链接法文版)。
至于空行:你到底哪里得到空行?你能找到那些空字符串“出现”的行吗?
PS:如果可能,请在评论中使用英语。让人们更容易理解他们。 :)