Разбор XML проблема с php - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь проанализировать свои данные из файла XML. У меня проблема с идентификаторами, мне нужно 10 строк и каждый раз один и тот же идентификатор между двумя массивами. Другая проблема связана с выводом, мне нужно 10 строк, а я получил 7, я чувствую перезапись в моем l oop.

Можно ли сохранить данные в al oop? Я не хочу использовать сессию данных

Спасибо за вашу потенциальную помощь:)

XML (для этого мне нужно два массива с одинаковым хранилищем идентификаторов)

 <criteresValorisation>
            <critereValorisation critereMetier="PoidsUnitaire" valeur="367">
                <codeCritereFacturation>7</codeCritereFacturation>
                <valeurCritereFacturation />
                <libelleValeurCritereFacturation />
                <typeCritereFacturation>CONTINU</typeCritereFacturation>
            </critereValorisation>
            <critereValorisation critereMetier="OptionSiteDepot" valeur="Standard Couplage">
                <codeCritereFacturation>41</codeCritereFacturation>
                <valeurCritereFacturation>29940</valeurCritereFacturation>
                <libelleValeurCritereFacturation>STANDARD CPL</libelleValeurCritereFacturation>
                <typeCritereFacturation>LISTE</typeCritereFacturation>
            </critereValorisation>
        </criteresValorisation>

Моя функция синтаксического анализа

<code> private function _parseResponseWsTranscoValoFactuCritere($responseXml, $idsDepotFacturation,$key)
{      
    $dataParse = array();
    $i = 0;

    foreach($responseXml->lignesTransco->ligneTransco as $data)
    {  
        //echo '<pre>';
        //var_dump($data);
        //echo '
'; if ($ key == "id_depot_facturation") {foreach ($ data-> criteresValorisation as $ data) {// echo "
";
                //var_dump($data);
                //echo "
"; foreach ($ data as $ clef => $ value) {// var_dump ((string) $ idsDepotFacturation [$ i] [$ key], (string) $ value-> attribute () -> critereMetier, (string) $ value -> атрибуты () -> Valeur (строка) $ ценностно> codeCritereFacturation (строка) $ ценностно> valeurCritereFacturation (строка) $ ценностно> libelleValeurCritereFacturation); $ dataParse [$ idsDepotFacturation [$ i] [$ key]] ["ID_DEPOT_FACTURATION"] = (строка) $ idsDepotFacturation [$ i] [$ key]; $ dataParse [$ idsDepotFacturation [$ i] [$ key]] ['CRITERE_METIER'] = (строка) $ value-> attribute () -> critereMetier; $ dataParse [$ idsDepotFacturation [$ i] [$ key]] ['VALEUR_CRITERE'] = (строка) $ value-> attribute () -> valeur; $ dataParse [$ idsDepotFacturation [$ i] [$ key]] ['CODE_CRITERE_FACTURATION'] = (строка) $ value-> codeCritereFacturation; $ dataParse [$ idsDepotFacturation [$ i] [$ key]] ['VALEUR_CRITERE_FACTURATION'] = (строка) $ value-> valeurCritereFacturation; $ dataParse [$ idsDepotFacturation [$ i] [$ key]] ['LIBELLE_VALEUR_CRITERE_FACTU'] = (строка) $ value-> libelleValeurCritereFacturation; / * if ($ dataParse [$ idsDepotFacturation [$ i] [$ key]] ["ID_DEPOT_FACTURATION"] == "") {unset ($ dataParse [$ idsDepotFacturation [$ i] [$ key]]); } * / // var_dump ($ dataParse); $ I ++; }}}} return $ dataParse; }

Как использовать эту функцию

$dataParseFactuCritere = $this->_parseResponseWsTranscoValoFactuCritere($oXML, $idsDepotFacturation, $key);

// Queries Table DEPOT_FACTURATION_CRITERE
            foreach($dataParseFactuCritere as $depotFacturationCritere)
            {
                    var_dump($depotFacturationCritere);
                    $oDepotFacturationCritere = new Services_DepotFacturationCritere();
                    $create = $oDepotFacturationCritere->insertDepotFacturationCritere($depotFacturationCritere);
            }

Результат анализа

array(6) {
["ID_DEPOT_FACTURATION"]=>
string(0) ""
["CRITERE_METIER"]=>
string(13) "PoidsUnitaire"
["VALEUR_CRITERE"]=>
string(3) "280"
["CODE_CRITERE_FACTURATION"]=>
string(2) "42"
["VALEUR_CRITERE_FACTURATION"]=>
string(0) ""
["LIBELLE_VALEUR_CRITERE_FACTU"]=>
string(0) ""
}
array(6) {
["ID_DEPOT_FACTURATION"]=>
string(6) "887094"
["CRITERE_METIER"]=>
string(15) "OptionSiteDepot"
["VALEUR_CRITERE"]=>
string(8) "Standard"
["CODE_CRITERE_FACTURATION"]=>
string(2) "41"
["VALEUR_CRITERE_FACTURATION"]=>
string(5) "14119"
["LIBELLE_VALEUR_CRITERE_FACTU"]=>
string(8) "STANDARD"
}
array(6) {
["ID_DEPOT_FACTURATION"]=>
string(6) "887095"
["CRITERE_METIER"]=>
string(13) "PoidsUnitaire"
["VALEUR_CRITERE"]=>
string(3) "140"
["CODE_CRITERE_FACTURATION"]=>
string(1) "7"
["VALEUR_CRITERE_FACTURATION"]=>
string(0) ""
["LIBELLE_VALEUR_CRITERE_FACTU"]=>
string(0) ""
}
array(6) {
["ID_DEPOT_FACTURATION"]=>
string(6) "887096"
["CRITERE_METIER"]=>
string(15) "OptionSiteDepot"
["VALEUR_CRITERE"]=>
string(8) "Standard"
["CODE_CRITERE_FACTURATION"]=>
string(2) "41"
["VALEUR_CRITERE_FACTURATION"]=>
string(5) "14111"
["LIBELLE_VALEUR_CRITERE_FACTU"]=>
string(8) "STANDARD"
}
array(6) {
["ID_DEPOT_FACTURATION"]=>
string(6) "887097"
["CRITERE_METIER"]=>
string(13) "PoidsUnitaire"
["VALEUR_CRITERE"]=>
string(3) "140"
["CODE_CRITERE_FACTURATION"]=>
string(1) "7"
["VALEUR_CRITERE_FACTURATION"]=>
string(0) ""
["LIBELLE_VALEUR_CRITERE_FACTU"]=>
string(0) ""
}
array(6) {
["ID_DEPOT_FACTURATION"]=>
string(6) "887098"
["CRITERE_METIER"]=>
string(15) "OptionSiteDepot"
["VALEUR_CRITERE"]=>
string(8) "Standard"
["CODE_CRITERE_FACTURATION"]=>
string(2) "41"
["VALEUR_CRITERE_FACTURATION"]=>
string(5) "14129"
["LIBELLE_VALEUR_CRITERE_FACTU"]=>
string(8) "STANDARD"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...