0
    <?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;
        }
}

我想删除这个空行。谢谢

4

1 回答 1

0

PHP 有一个内置的 XML 解析器,您应该使用而不是尝试编写自己的解析器(在这种情况下,当遇到格式错误的文件结构时,它可能很容易出错)。

有一整本关于这个的“书”,可以在 PHP 手册中找到(链接法语版)。

至于空行:你到底在哪里得到空行?你能找出那些空字符串“出现”的那一行吗?

PS:如果可能,请在评论中使用英文。让这里的人更容易理解他们。:)

于 2013-06-06T10:06:19.080 回答