webForumDet fria alternativet

Xml dom

6 svar · 320 visningar · startad av SPiN

SPiNMedlem sedan mars 20005 832 inlägg
#1

Hej!

Jag har installerat PHP för ett bra tag sen, och har nu satt mig in i XMLns underbara värld :)
Nu vill jag kunna redigera o leka med mina XML-dokument via PHP, genom XML DOM eller XML Parser. Om jag redan hade installerat PHP, då måste det väl gå att bara "lägga till" dessa, istället för att installera med attributet --with-dom för XML DOM?

Och hur gör jag för att få XML Parser att fungera? Jag tycker manualen är lite luddig just om det...

Hoppas någon vet hur jag ska göra! :)

------------------
SPiN, bjorne.w@telia.com

-- Fame is a bitch, man [Brad Pitt - Fight Club] --

SPiNMedlem sedan mars 20005 832 inlägg
#2

Ingen som vet?

Aja, jag tror jag har fått igång XML DOM nu ivf...

Men jag har något fel i koden, min PHP-sida slutar aldrig laddas! :q

$strXML = "useMe.xml";
$xml = xmldocfile($strXML);

$roten = $xml->root();
$barn = $roten->children();

while($element = array_shift($barn)) {
	if($element->name == "title") {
		$title = $element;
		break;
	}
}

$text_node = array_shift($title);

echo $text_node->content;

Någon som vågar ta tag i det här problemet då? Jag är den personen tacksam för evigt ;)

------------------
SPiN, bjorne.w@telia.com

-- Fame is a bitch, man [Brad Pitt - Fight Club] --

spangoMedlem sedan juni 20006 147 inlägg
#3

Prova att byta ut...

while($element = array_shift($barn)) {
	if($element->name == "title") {
		$title = $element;
		break;
	}
}

mot:

$title = $xml->getElementsByTagName("title");

Inte för att det borde vara nåt fel med loopen, men det känns ju litegrann som om den är den enda som kan orsaka nån evighetsgrej, inte sant?

Den här delen är verkligen pinsamt dåligt dokumenterad...

------------------
These are the cries of the carrots, the cries of the carrots! You see, Reverend Maynard, tomorrow is harvest day and to them it is the holocaust.

SPiNMedlem sedan mars 20005 832 inlägg
#4

Den här delen är verkligen pinsamt dåligt dokumenterad...

Japp, håller med... Konstigt, med tanke på att XML har väver och växer... :l

Aja, jag kom på vad felet var. Det var inte loopen :)
I php.ini hade jag ändrat i extensions, jag hade två stycken aktiva, DOM XML och Java. Och efter att jag tagit bort Java så funkade det... Mycket konstigt. Kan man inte använda flera extensions aktiva samtidigt? :q

PHPbuilder.com har dom flera artiklar angående XML-parsing har jag sett. Det var även därifrån jag hade första kodbiten. Men dom använder bara XML-dokument av typen;

<rotelement>
<ettelement>Värde ett</ettelement>
<tvaelement>Värde två</tvaelement>
</rotelement>

Om jag nu har XML-filer som ser ut som följer, funkar inte koden. Att "gå ner djupare" i elementen, går inte, verkar det som. Några förslag?

<rotelement>
<foretag>
<foretagsnamn>Namn Ett</foretagsnamn>
<foretagshemsida>Sida Ett</foretagshemsida>
</foretag>
<foretag>
<foretagsnamn>Namn Två</foretagsnamn>
<foretagshemsida>Sida Två</foretagshemsida>
</foretag>
</rotelement>

Man kan inte hämta fler children via variabeln $barn, för man får felet att man försöker hämta information med en metod från ett icke-objekt... Hmm...

Hur göra? spango verkar vara den enda som är inne på det här med XML o PHP? :)

------------------
SPiN, bjorne.w@telia.com

-- Fame is a bitch, man [Brad Pitt - Fight Club] --

spangoMedlem sedan juni 20006 147 inlägg
#5

Om du hade Javamodulen inkopplad, så antar jag att du kan Java? Kan du Java (eller snarare: Kan du läsa Java-API:t) så borde inte specen för DOM (finns hos w3) innebära några svårigheter.

------------------
These are the cries of the carrots, the cries of the carrots! You see, Reverend Maynard, tomorrow is harvest day and to them it is the holocaust.

Poppe25Medlem sedan apr. 2002278 inlägg
#6

Hur gjorde du för att sätta igång XML-domen? Antar att du i php.ini skrev någon inställning, men räcker det?

SPiNMedlem sedan mars 20005 832 inlägg
#7

Öppna php.ini och gå ner till stycket om extensions. Se till att extension-dir pekar mot rätt katalog med .dll-filer, och plocka bort semikolonet framför XML DOM-dll:en. Starta om webservern. Klart!

Genererad på 368 ms · cache AV · v20260730165559-full.f96bc7eb