Ankündigung

Einklappen
Keine Ankündigung bisher.

Umstellung xml Daten

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Umstellung xml Daten

    Hallo Gemeinschaft,

    habe ein Problem mit dem Einlesen von Daten aufgrund der Änderung der xml Daten

    bisher sah der betroffene Teil so aus

    HTML-Code:
    <PackageItem Category="Service während der Reise">Gepäcktransport bei Ein - und Ausschiffung</PackageItem>
    nun sieht er so aus
    HTML-Code:
    <PackageItem Category="Kreuzfahrt"><Description>Teilnahme an Bordveranstaltungen und Nutzung der meisten Schiffseinrichtungen</Description><Conditions/></PackageItem>
    das ist der betroffene Code
    PHP-Code:
      $sql "INSERT INTO PackageItems (`PackageItem`, `Category`) VALUES ";
                
    $sql .= "('" $value['PackageItem'] . "','" $value['Category'] . "')"
    könnt ihr mir zeigen, wie ich das ändern muss


  • #2
    Langsam solltest du es wissen.
    Wer darf hier posten - Nur PROFIS.

    Kommentar


    • #3
      ... kannst du es bitte in das entsprechende Forum verschieben

      Kommentar


      • #4
        Zitat von jensg Beitrag anzeigen
        könnt ihr mir zeigen, wie ich das ändern muss
        Nein, da du uns verschweigst, wie du vom XML zu $value kommst.

        Kommentar


        • #5
          das ist der code

          PHP-Code:
          $OtherPackageItems = array();
                  
          //echo "<br /><br />";
                  
          if(isset($v$v->Package$v->Package->OtherPackageItems$v->Package->OtherPackageItems->PackageItem)) {
                      foreach (
          $v->Package->OtherPackageItems->PackageItem as $opt_k => $opt_v) {
                          
          $opt_t $opt_v->attributes();
                          
          $PackageItem = array();

                         
          $PackageItem['PackageItem'] = htmlspecialchars($opt_vENT_QUOTES);

                          
          $PackageItem['Category'] = htmlspecialchars($opt_t['Category'], ENT_QUOTES);
                          
          $OtherPackageItems[] = $PackageItem;
                      } 

          Kommentar


          • #6
            ich hatte es schon damit probiert
            PHP-Code:
            $PackageItem['PackageItem'] = htmlspecialchars($opt_v->DescriptionENT_QUOTES); 
            werte kommen nicht rein

            Kommentar


            • #7
              anbei ein Auszug aus der xml
              PHP-Code:
              <?xml version="1.0" encoding="UTF-8"?>
              <Results>
              <SearchResult Language="de"><RouteID>1851</RouteID><Name>Südliche Kykladen</Name><Duration>8</Duration><Package><IsPackage>No</IsPackage><HotelIncluded> No</HotelIncluded><FlightIncluded>No</FlightIncluded><BusIncluded>No</BusIncluded><TrainIncluded>No</TrainIncluded><TransfersIncluded>No</TransfersIncluded><FullboardIncluded>Yes</FullboardIncluded><HalfboardIncluded>No</HalfboardIncluded><GuideIncluded>No</GuideIncluded><DrinksIncluded>No</DrinksIncluded><DrinksWithMealsIncluded>No</DrinksWithMealsIncluded><DrinkBudgetIncluded>No</DrinkBudgetIncluded><AllInclusive>No</AllInclusive><OtherPackageItems><PackageItem Category="Kreuzfahrt"><Description>Alle Hafengebühren und Steuern</Description><Conditions/></PackageItem><PackageItem Category="Kreuzfahrt"><Description>Alle Treibstoffzuschläge</Description><Conditions/></PackageItem><PackageItem Category="Kreuzfahrt"><Description>Die Kreuzfahrt ab Piräus / Athen (Griechenland)  / bis Piräus / Athen (Griechenland)</Description><Conditions/></PackageItem><PackageItem Category="Kreuzfahrt"><Description>Teilnahme an Bordveranstaltungen und Nutzung der meisten Schiffseinrichtungen</Description><Conditions/></PackageItem><PackageItem Category="Getränke an Bord"><Description>Kaffee und Tee an Bord kostenlos</Description><Conditions/></PackageItem><PackageItem Category="Verpflegung an Bord"><Description>Alle Mahlzeiten (bei manchen Spezialitätenrestaurants sind Aufschläge möglich)</Description><Conditions/></PackageItem><PackageItem Category="Besondere Events an Bord"><Description>Gala-Dinner des Kapitäns</Description><Conditions/></PackageItem><PackageItem Category="Sonstige Leistungen"><Description>Wasserski, Kajak und Schnorcheln</Description><Conditions/></PackageItem></OtherPackageItems><Exclusions><Exclusion>Persönliche Ausgaben an Bord</Exclusion><Exclusion>Zusätzliche Dienstleistungen wie z.B. Friseur, Massagen etc.</Exclusion><Exclusion>Trinkgelder an Bord</Exclusion><Exclusion>

              Kommentar


              • #8
                Zitat von jensg Beitrag anzeigen
                ... kannst du es bitte in das entsprechende Forum verschieben
                Nächstes mal kostet es was.

                MOD: Verschoben von PHP-Fortgeschritten
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  was gibt var_dump($values)? Übrigens hat htmlspecialchars() an der Stelle nichts zu suchen, da es ein Ausgabefilter ist, dort aber kein Kontextwechsel stattfindet.

                  Kommentar


                  • #10
                    HTML-Code:
                    array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(15) "An- und Abreise" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(15) "An- und Abreise" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(15) "An- und Abreise" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(21) "Vor- und Nachprogramm" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(10) "Kreuzfahrt" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(10) "Kreuzfahrt" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(10) "Kreuzfahrt" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(10) "Kreuzfahrt" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(17) "Getränke an Bord" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(17) "Getränke an Bord" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(19) "Verpflegung an Bord" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(19) "Verpflegung an Bord" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(24) "Besondere Events an Bord" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(24) "Besondere Events an Bord" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(26) "Service während der Reise" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(26) "Service während der Reise" } array(2) { ["PackageItem"]=> string(0) "" ["Category"]=> string(26) "Service während der Reise" }

                    Kommentar


                    • #11
                      Das <PackageItem>-Element enthält keine Textknoten, daher ergibt der String-cast einen Leerstring.

                      http://php.net/manual/de/simplexmlelement.tostring.php

                      Returns text content that is directly in this element. Does not return text content that is inside this element's children.

                      Kommentar


                      • #12
                        lieben dank - verstehe nur nicht, wie ich auf die textknoten zugreifen kann

                        Kommentar


                        • #13
                          Indem du auf das Element zugreifst, das den Textknoten hat.

                          Kommentar


                          • #14
                            das hab ich doch hiermit versucht
                            PHP-Code:
                            $PackageItem['PackageItem'] = htmlspecialchars($opt_v->DescriptionENT_QUOTES); 

                            Kommentar


                            • #15
                              das hab ich doch hiermit versucht
                              Dann solltest du dir in deinem XML nochmal genau anschauen, welches Element den Text(knoten) enthält.

                              Kommentar

                              Lädt...
                              X