xpath wilt niet werken in php

Pagina: 1
Acties:
  • 285 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Verbeemen
  • Registratie: Juli 2009
  • Laatst online: 11-05-2023
Beste

Zoals in de titel vermeld staat wilt xpath niet meewerken.

Achtergrond:
Momenteel ben ik aan een project bezig waarbij ik gegevens (cursussen / courses) uit een 'OLAT' - systeem moet halen. Deze cursussen zijn opgeslagen in een xml bestand.
http://verbeemen.sinners.be/XML/XPath/runstructure.xml

Omschrijving:
Ik zou deze gegevens willen inlezen door het gebruik te maken van xpath

Probleem:
Telkens als ik ->xpath vermeld stopt php met werken

Mijn code:

$xml = new DOMDocument();
$xml->load( "/opt/olat/olatdata/bcroot/course/85235053647606/runstructure.xml" );

/$aResult = $xml->xpath("/rootNode/children");
echo "Count: " . count($aResult) . "<br />";


Weet iemand dit op te lossen? want zoveel kan er niet fout zijn aan de code zelf.
het is precies of dat php xpath niet kent.
maar toch gebruik ik php5 op een ubuntu server & xpath support is enabled

Alvast bedankt

Acties:
  • 0 Henk 'm!

  • Juup
  • Registratie: Februari 2000
  • Niet online
Welke XPath module gebruik je?
Welke error krijg je?
Edit: zoiets?
PHP:
1
$xpath = new DOMXpath($doc);

[ Voor 45% gewijzigd door Juup op 16-03-2012 17:46 ]

Ben ik nou zo dom of zijn jullie nou zo slim?


Acties:
  • 0 Henk 'm!

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 18:47
Is het niet de bedoeling dat je een DOMXPath aanmaakt met je $dom object en daar de queries op uitvoert?

Edit: zoals Jaaap in zijn update aangeeft }:O

[ Voor 13% gewijzigd door azerty op 16-03-2012 17:48 ]


Acties:
  • 0 Henk 'm!

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 00:13
Vervolgens geeft DOMXpath::query() (of ::evaluate()) een DOMNodeList terug. Deze implementeert voor zover ik weet geen countable, maar moet je DOMNodeList::length gebruiken om te zien hoeveel resultaten hier in zitten.

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Acties:
  • 0 Henk 'm!

  • azerty
  • Registratie: Maart 2009
  • Laatst online: 18:47
Die count is waarschijnlijk ook maar tijdelijk om te testen vermoed ik ^^

Acties:
  • 0 Henk 'm!

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 00:13
wsitedesign schreef op vrijdag 16 maart 2012 @ 18:23:
Die count is waarschijnlijk ook maar tijdelijk om te testen vermoed ik ^^
Ongetwijfeld. maar die count() is wel een instinker...

code:
1
2
3
4
5
6
7
8
9
10
11
<?php
$xml = '<xml><foo /><foo /></xml>';
$doc = new DOMDocument();
$doc->loadXML($xml);
$xpath = new DOMXpath($doc);

$res = $xpath->query('/xml/foo');
var_dump(count($res), $res->length);

$res = $xpath->query('/xml/bestaatniet');
var_dump(count($res), $res->length);


Retourneert:
int(1)
int(2)
int(1)
int(0)
Omdat DOMNodeList 1 property heeft (length), en niet countable returned zal die count() altijd 1 returnen. Als je je daar niet van bewust bent ben je gegarandeerd van bugs ;)

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 23:19

Creepy

Tactical Espionage Splatterer

"stopt php met werken". Dus je krijgt geen output? Wat zeggen je apache logs precies? Heb je error reporting aan staan?

Ga nu eerst eens zelf aan de slag met debuggen. Als php "stopt" dan is dat altijd inzichtelijk waarom. Het zij op je scherm omdat je error reporting aan staan. het zij in de webserver logs. Zonder die info kunnen wij verder ook niks dus ga daar eerst eens achteraan. Mocht je dan een nieuw topic willen openen geef dan vervolgens ook nog aan wat je nu zelf al hebt geprobeerd om de fout te verhelpen. Zie ook Het algemeen beleid #quickstart voor meer informatie welke informatie er eigenlijk in een topicstart zou moeten staan.

[ Voor 27% gewijzigd door Creepy op 16-03-2012 20:19 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.