Toon posts:

[ xml php ] validerende xml parser onder php

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met de volgende vraag: is het mogelijk om een _validerende_ xml parser onder php te hangen?

Zo ja, heeft iemand meer informatie over hoe dit mogelijk is, welke parser ik naar zou kunnen kijken, e.d.

De expat functionaliteit of domxml bieden volgens mij deze mogelijkheden niet, of zit ik er dan naast?

Ik zou er erg content mee zijn, aangezien ik user-input via PostingML - http://www.pandoramix.org/PostingML/index.html - wil valideren voordat ik het uberhaupt ga gebruiken...

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
De domxml extensie kan je er wel voor misbruiken. Met xmldoc() kan je een xml document uit een string omzetten naar een DOM document object.

De functie geeft dat object terug als het goed is gegaan, of false als het four is gegaan. Hierdoor zou je dus kunnen kijken of de Posting wel valid-xml is.

Code vorbeeldje:
PHP:
1
<?// $posting bavat de posting van de user$domPosting = xmldoc(            '<?xml version="1.0" encoding="utf-8"?>            <posting xmlns="http://www.pandoramix.org/2001/PostingML">' .             $posting .             '</posting>');if ($domPosting){    // De posting is ok}else{    // de posting is niet xml-valid}?>

Helaas kan je op deze manier geen mooie fourmeldingen laten zien aan wat er mis mee is, zoals IE dat met xml doet. Om dat te moeten doen, zou je misschien eens kunnen kijken wat je met de sax parser van php kan doen, hoewel ik een kans van slagen laag acht.

Verwijderd

Grofur: Is het mogelijk om een _validerende_ xml parser onder php te hangen? Ik [wil] user-input via PostingML - valideren voordat ik het uberhaupt ga gebruiken...
Wil je weten of het valid is of dat het well-formed is?
De expat functionaliteit of domxml bieden volgens mij deze mogelijkheden niet, of zit ik er dan naast?
Om te kijken of je XML well-formed is, kun je expat prima gebruiken.
Valideren zal meer werk zijn omdat je dat zelf moet doen (expat is geen validerende parser), bijvoorbeeld door het schema te "vertalen" naar PHP en vervolgens je XML te parsen met als handlers de structuren en functies die je bedacht dan wel ingelezen hebt. (Dus aan de hand van de restricties die het schema aangeeft.)
freak007: Helaas kan je op deze manier geen mooie fourmeldingen laten zien aan wat er mis mee is, zoals IE dat met xml doet.
Met expat gaat dat prima. :)