XML Produktseite auslesen

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

  • XML Produktseite auslesen

    Moin Moin,

    ich habe eine fette XML seite die wie folgt aufgebaut ist.

    <!--- XMl-- Anfang---->

    <?xml version="1.0" encoding="utf-8" ?>
    - <products>
    - <product>
    <TDProductId>123456789</TDProductId>
    <name>AMILO A 1640</name>
    <description>Mobile AMD Sempron™ 2800+, Microsoft® Windows® XP Home, 40 GB HDD, 2x256 MB RAM. DVD-Dual-Brenner Double Layer, 15,4" WXGA TFT.</description>
    <imageUrl>http://www.mustermannpage.de/images/...110/124072.gif</imageUrl>
    <productUrl>http://mustermannpage.de.com/click?a...&prod=25698741</productUrl>
    <price>929.0</price>
    <currency>EUR</currency>
    - <TDCategories>
    - <TDCategory>
    <id>19</id>
    <name>Laptops</name>
    <merchantName>Notebooks/Notebooks FSC</merchantName>
    </TDCategory>
    </TDCategories>
    - <fields>
    - <field>
    <name>Abmessungen (Breite x Tiefe x Höhe)</name>
    <value>35.8 cm x 27.2 cm x 3.3 cm</value>
    </field>
    - <field>
    <name>Audioausgang</name>
    <value>Soundkarte</value>
    </field>
    - <field>
    <name>Batterie</name>
    <value>Lithium-Ionen</value>
    </field>
    - <field>
    <name>Betriebssystem</name>
    <value>Microsoft Windows XP Home Edition</value>
    </field>
    - <field> <!--gekürzt da die Details noch viel länger sind-->
    </fields>
    </product>
    </products> <!--gekürzt da noch viele Produkte mehr folgen-->

    <!----XML Ende---->

    und hier der script mit dem ich die seite auslese.

    <!---script anfang--->

    PHP-Code:
    <?php 
    $rdffile 
    "http://testpage.to/pf/pf?a=123465categoryId=19&maxResults=1000&firstResult=20"
    $content implode (""file ($rdffile)); 
    preg_match_all("|<product>(.*)</product>|Uism",$content$itemsPREG_PATTERN_ORDER); 
    for (
    $i=0;$i<count($items[1]);$i++) 
    preg_match_all(
    "|<name>(.*)</name>(.*)<description>(.*)</description>(.*)<productUrl>(.*)</productUrl>(.*)
    <price>(.*)</price>(.*)<currency>(.*)</currency>(.*)<fields>(.*)</fields>|Uism"
    ,
    $items[1][$i], $regsPREG_PATTERN_ORDER); 
    echo 
    "".utf8_decode($regs[1][0])."
    <br>
    "
    .utf8_decode($regs[3][0])."
    <br><br>
    Preis: "
    .utf8_decode($regs[7][0])."
    "
    .utf8_decode($regs[9][0])."
    <br>Hier sehen Sie die Details des "
    .utf8_decode($regs[1][0])."
    <br>
    - "
    .utf8_decode($regs[11][0])."
    <br> 
    <a href='"
    .utf8_decode($regs[5][0])."' target='_blank'>
    Klicken Sie hier für alle Details</a><br><br>\n"
    ; } 
    ?>
    <!--- Script Ende--->

    das problem bei der sache ist nun folgendes.
    ich möchte

    - <field>
    <name>Systemtyp</name>
    <value>Notebook</value>
    </field>

    einzeln auslesen, weiss aber nicht wie ich den code dafür ändern muss. im moment haben ich <fields></fields> ausgelesen womit ich zwar die ergebnisse bekomme allerdings ohne leerstellen zwischen den <name>Systemtyp</name>
    <value>Notebook</value>

    was natürlich wenig sinn macht.

    ausserdem: wenn ich ein produkt auf der seite habe, welches keine
    - <field>
    <name>Systemtyp</name>
    <value>Notebook</value>
    </field>

    hat, (was ab und an vorkommt) dann gibt das script bei diesen betreffenden produkten keine description usw. aus. bei dem nächsten produkt mit <field> funktioniert es wieder, ausser das problem mit den leerstellen.

    ich hoffe ihr habt in etwa verstanden was ich meine.

    habt ihr ne lösung , ein anderes script oder die entsprechenden änderungen?

    es sei angemerkt, dass ich fast nix über php weiss und ich froh bin das ich ein rssfeed einbinden kann. also seit gnädig und lacht nicht zu sehr über diese "blöde" frage.

    mfg
    Zuletzt geändert von Pretender; 09.01.2005, 15:38.
    wer nicht fragt.......
    Pretender

  • #2
    Welcome,

    bitte vor dem Posten lesen:
    http://www.php-resource.de/forum/sho...threadid=47906

    Kommentar


    • #3
      ich habe das php script nun farblich abgesetzt und hoffe das dies ausreciht um eine antwort zu bekommen.

      mfg
      wer nicht fragt.......
      Pretender

      Kommentar

      Lädt...
      X