Avatar billede matz Nybegynder
17. august 2007 - 09:27 Der er 18 kommentarer og
1 løsning

udskriv indhold fra xml

Er der nogen her som kan se hvad der er galt, den melder fejl:

Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\oop\visxml.php on line 7

Kode:

visxml.php :

include_once 'xml_class.php';

$result1 = new XML
$result = new DOMdocument;
$result->Load("rss.xml");
$result1 = $result->getElementsByTagName("title");
$result1 = $result->getElementsByTagName("link");
$result1 = $result->getElementsByTagName("description");
$result1->udskrivXML()

xml_class.php :

class XML()
{
    $title
    $link
    $description

}

function udskrivXML()
{

    echo '<h3>'.$title->item(0)->nodeValue.'</h3>';
    echo '<a href="#">'.$link->item(0)->nodeValue.'</a><br /><br />';
    echo '<b>Beskrivelse:</b><br />'.$description->item(0)->nodeValue.'</h3>';
   
}
Avatar billede nielle Nybegynder
17. august 2007 - 09:47 #1
Du mangler at afslutte en masse af dine kodelinjer med semikolon.
Avatar billede matz Nybegynder
17. august 2007 - 09:55 #2
Selvfølgelig! Tideligt på morgenen :)

Nu ser koden sådan her ud:

visxml.php :

include_once 'xml_class.php';

$result1 = new XML;
$result = new DOMdocument;
$result->Load("rss.xml");
$result1 = $result->getElementsByTagName("title");
$result1 = $result->getElementsByTagName("link");
$result1 = $result->getElementsByTagName("description");
$result1->udskrivXML();

xml_class.php :

class XML
{
    public $title;
    public $link;
    public $description;

}

function udskrivXML()
{

    echo '<h3>'.$title->item(0)->nodeValue.'</h3>';
    echo '<a href="#">'.$link->item(0)->nodeValue.'</a><br /><br />';
    echo '<b>Beskrivelse:</b><br />'.$description->item(0)->nodeValue.'</h3>';
   
}

Den melder denne fejl nu:

Fatal error: Call to undefined method DOMNodeList::udskrivXML() in C:\wamp\www\oop\visxml.php on line 11
Avatar billede nielle Nybegynder
17. august 2007 - 09:57 #3
Flyt definitiationen af

function udskrivXML()

indenfor i din XML klasse.
Avatar billede matz Nybegynder
17. august 2007 - 09:59 #4
Den melder stadig samme fejl med denne kode:

class XML
{
    public $title;
    public $link;
    public $description;



function udskrivXML()
{

    echo '<h3>'.$title->item(0)->nodeValue.'</h3>';
    echo '<a href="#">'.$link->item(0)->nodeValue.'</a><br /><br />';
    echo '<b>Beskrivelse:</b><br />'.$description->item(0)->nodeValue.'</h3>';
   
}
}
Avatar billede nielle Nybegynder
17. august 2007 - 10:04 #5
Mon ikke din kopde skal modifiseres lidt:

$result1 = new XML;
$result = new DOMdocument;
$result->Load("rss.xml");
$result1->$title = $result->getElementsByTagName("title");  // HER
$result1->$link = $result->getElementsByTagName("link");  // HER
$result1->$description = $result->getElementsByTagName("description");  // OG HER
$result1->udskrivXML();
Avatar billede matz Nybegynder
17. august 2007 - 10:07 #6
Hmm med den kode du gav mig der udskriver den nu:

Fatal error: Cannot access empty property in C:\wamp\www\oop\visxml.php on line 8
Avatar billede nielle Nybegynder
17. august 2007 - 10:12 #7
Hvad står der i linje 8?
Avatar billede matz Nybegynder
17. august 2007 - 10:15 #8
$result1->$title = $result->getElementsByTagName("title");  // HER
Avatar billede nielle Nybegynder
17. august 2007 - 10:18 #9
Hvad sker der hvis du prøver dette:

$result1 = new XML;
$result = new DOMdocument;
$result->Load("rss.xml");
echo "DEBUG: " . $result->getElementsByTagName("title") . "<br>"
// $result1->$title = $result->getElementsByTagName("title");  // HER
// $result1->$link = $result->getElementsByTagName("link");  // HER
// $result1->$description = $result->getElementsByTagName("description");  // OG HER
// $result1->udskrivXML();
Avatar billede matz Nybegynder
17. august 2007 - 10:20 #10
Parse error: syntax error, unexpected '=' in C:\wamp\www\oop\visxml.php on line 5

Linje 5:

result1 = new XML;
Avatar billede nielle Nybegynder
17. august 2007 - 10:22 #11
Denne gang er det mig som mangler semikolonet. ;^)
Avatar billede matz Nybegynder
17. august 2007 - 10:23 #12
Den er let at overse ;)

Catchable fatal error: Object of class DOMNodeList could not be converted to string in C:\wamp\www\oop\visxml.php on line 8

Linje 8:

echo "DEBUG: " . $result->getElementsByTagName("title") . "<br>";
Avatar billede nielle Nybegynder
17. august 2007 - 10:26 #13
Nu kender jeg ikke så meget til XML under PHP. men mon ikke det skal være noget i stil med:

$result->getElementsByTagName("title").innerText

?
Avatar billede matz Nybegynder
17. august 2007 - 10:30 #14
Desværre, den melder stadig fejl.
Avatar billede nielle Nybegynder
17. august 2007 - 10:38 #15
Eller:

$result->getElementsByTagName("title")->item(0)->nodeValue
Avatar billede matz Nybegynder
17. august 2007 - 10:50 #16
Det virker nu med dette her:

public function __construct()
    {
        $result = new DOMdocument;
        $result->Load("rss.xml");
        $this->title = $result->getElementsByTagName("title"); 
        $this->link = $result->getElementsByTagName("link"); 
        $this->description = $result->getElementsByTagName("description");
    }

Og jeg udskriver den med:

include_once 'xml_class.php';

$xml = new XML();

$xml->udskrivXML();

Ganske eneklt :)

Men lig et svar også for du points for hjælpen.
Avatar billede nielle Nybegynder
17. august 2007 - 10:51 #17
Svar :^)
Avatar billede nielle Nybegynder
17. august 2007 - 10:58 #18
Jeg vil nu foreslå at du laver det på denne måde:

$result1 = new XML
$result = new DOMdocument;
$result->Load("rss.xml");
$result1->title = $result->getElementsByTagName("title")->item(0)->nodeValue;
$result1->link = $result->getElementsByTagName("link")->item(0)->nodeValue;
$result1->description = $result->getElementsByTagName("description")->item(0)->nodeValue;
$result1->udskrivXML()

og:


class XML
{
    public $title;
    public $link;
    public $description;

    function udskrivXML()
    {
        echo '<h3>' . $title . '</h3>';
        echo '<a href="#">' . $link . '</a><br /><br />';
        echo '<b>Beskrivelse:</b><br />' . $description . '</h3>';
    }
}

Der er ingen grund til at gemme XML-strukture i din XML-klasse hvis du ikke har resten af XML-dokumentet med alligevel. Så hvorfor ikke bare nøjes med selve teksten?
Avatar billede matz Nybegynder
17. august 2007 - 11:10 #19
ja det er selvfølgelig rigtig nok.
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