j'ai un soucis avec un script.
Son but est de lire un fichier txt et de l'exploser et construire un fichier xml.
Mon fichier est constitué de 8 parties coupé par ; mais il arrive que le dernier élément manque alors j'ai un soucis car apparait alors
Voici le script et fichiers:
Fichier de départ :
Code : Tout sélectionner
8025;29000;FR9909090909;BT;20070925;9447.82;0.046695
8025;29000;FR9909090909;BT;20071001;9452.67
une partie du fichier php :
while (!feof($fp)) {
$ligne = fgets($fp);
$fragments = explode(';', $ligne);
if ($codeIsinPrec!="" && $codeIsinPrec!=$fragments[2])
{
$nomFichier ="cours/cours".$todayY.$sTodaym.$sTodayj ;
if (!isset($fichiers_sortie[$nomFichier])) {
$fichiers_sortie[$nomFichier] = new DOMDocument('1.0', 'ISO-8859-1');
if (file_exists($nomFichier . ".xml"))
{
$fichiers_sortie[$nomFichier]->load($nomFichier . ".xml") ;
}
}
$dom = $fichiers_sortie[$nomFichier];
try {
$xpath = new DOMXPath($dom);
if ($bPremiereFois) {
if (!file_exists($nomFichier . ".xml"))
{
$id = $dom->createElement("mvts");
$dom->appendChild($id);
}
else
{
$id = $xpath->evaluate("mvts")->item(0);
}
$bPremiereFois = false;
}
$node = $xpath->evaluate("mvt[@code_isin='{$fragmentsPrec[2]}']")->item(0);
if ($node==null)
{
$mvt = $dom->createElement('mvt');
$mvt->setAttribute('code_cns', $fragmentsPrec[0].$fragmentsPrec[1]);
$mvt->setAttribute('code_isin', $fragmentsPrec[2]);
$mvt->setAttribute('dateValeur', $fragmentsPrec[4]);
$mvt->setAttribute('cours', $fragmentsPrec[5]);
$mvt->setAttribute('volatilite', $fragmentsPrec[6]);
$id->appendChild($mvt);
}
} catch (Exception $e) {
die('Ligne ' . $e->getLine() . ' : ' . $e->getMessage());
}
}
$codeIsinPrec = $fragments[2];
$fragmentsPrec = $fragments;
}
fclose($fp);
et voici l'arrivée en xml :
Code : Tout sélectionner
<?xml version="1.0" encoding="ISO-8859-1"?>
<mvts><mvt code_cns="802529000" code_isin="FR9909090909" dateValeur="20091001" cours="9452.67
" volatilite=""/><mvt code_cns="40251712000" code_isin="FR2121212121" dateValeur="20070925" cours="9000.82" volatilite="1.046695
"/>
Je ne sais pas comment enlever
Merci beaucoup
Code : Tout sélectionner