Avatar billede superb Nybegynder
22. august 2007 - 21:11 Der er 6 kommentarer og
1 løsning

xml parser

jeg har kigget rundt og prøvet at finde artikler xml parser, det jeg gerne ville var at få author, productname, usedprice, details url og imageurlsmall ud fra denne xmlfil
http://xml-eu.amazon.com/onca/xml3?KeywordSearch=genes&dev-t=D2WMCOIPS9D14E&f=xml&locale=uk&mode=books&page=1&t=chipdir03&type=lite

kan man også nøjes med de 5 første?

Nogen der gider forklare lidt hvordan man gør?
Avatar billede jakobdo Ekspert
22. august 2007 - 21:41 #1
Hvis du bruger php5, så kig på simplexml
Avatar billede arne_v Ekspert
23. august 2007 - 02:17 #2
Kode eksempel:

<?php
$doc = new DOMDocument();
$doc->preserveWhiteSpace = FALSE;
$doc->load('http://xml-eu.amazon.com/onca/xml3?KeywordSearch=genes&dev-t=D2WMCOIPS9D14E&f=xml&locale=uk&mode=books&page=1&t=chipdir03&type=lite');
$list = $doc->getElementsByTagName('Details');
foreach($list as $detail) {
    echo 'DetailsUrl = ' . $detail->attributes->getNamedItem('url')->nodeValue . '<br>';
    $node = $detail->firstChild;
    do {
        if($node->nodeName == 'Authors') {
            foreach($detail->getElementsByTagName('Author') as $author) {
                echo 'Author = ' . $author->nodeValue . '<br>';
            }
        } else if($node->nodeName == "ProductName") {
            echo 'ProductName = ' . $node->nodeValue . '<br>';
        } else if($node->nodeName == "UsedPrice") {
            echo 'UsedPrice = ' . $node->nodeValue . '<br>';
        } else if($node->nodeName == "ImageUrlSmall") {
            echo 'ImageUrlSmall = ' . $node->nodeValue . '<br>';
        }
        $node = $node->nextSibling;
    } while($node != NULL);
    echo '====<br>';
}
?>
Avatar billede superb Nybegynder
23. august 2007 - 17:46 #3
har desværre ikke php5, kodeeksemplet kan jeg ik få til at virke, der er "Parse error: parse error, expecting `','' or `';'' " ved linie 8, ved echo, det vel ik fordi jeg ikke har php5?
Avatar billede arne_v Ekspert
23. august 2007 - 19:51 #4
Jeg kan proeve og konvertere det til PHP 4.
Avatar billede arne_v Ekspert
24. august 2007 - 01:29 #5
Her er den porteret til den afskyelige DOM XML i PHP 4:

<?php
$doc = domxml_open_file('http://xml-eu.amazon.com/onca/xml3?KeywordSearch=genes&dev-t=D2WMCOIPS9D14E&f=xml&locale=uk&mode=books&page=1&t=chipdir03&type=lite');
$list = $doc->get_elements_by_tagname('Details');
foreach($list as $detail) {
    echo 'DetailsUrl = ' . $detail->get_attribute('url') . '<br>';
    $node = $detail->first_child();
    do {
        if($node->node_name() == 'Authors') {
            foreach($detail->get_elements_by_tagname('Author') as $author) {
                $authortext = $author->first_child();
                echo 'Author = ' . $authortext->node_value() . '<br>';
            }
        } else if($node->node_name() == "ProductName") {
            $productname = $node->first_child();
            if($productname != NULL) {
                echo 'ProductName = ' . $productname->node_value() . '<br>';
            }
        } else if($node->node_name() == "UsedPrice") {
            $usedprice = $node->first_child();
            if($usedprice != NULL) {
                echo 'UsedPrice = ' . $usedprice->node_value() . '<br>';
            }
        } else if($node->node_name() == "ImageUrlSmall") {
            $imageurlsmall = $node->first_child();
            if($imageurlsmall != NULL) {
                echo 'ImageUrlSmall = ' . $imageurlsmall->node_value() . '<br>';
            }
        }
        $node = $node->next_sibling();
    } while($node != NULL);
    echo '====<br>';
}
?>
Avatar billede arne_v Ekspert
22. september 2007 - 21:17 #6
OK ?
Avatar billede superb Nybegynder
14. maj 2008 - 00:11 #7
sorry, troede jeg havde fået accepteret
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester