[PHP5] Domdocument load probleem

Pagina: 1
Acties:

  • BierPul
  • Registratie: Juni 2001
  • Nu online

BierPul

2 koffie graag

Topicstarter
Ik ben bezig met PHP5 om een XML/XSLT driven site op te zetten, ik had hier verder niet zoveel ervaring dus ben een beetje gaan spelen maar loop tegen een voor wat mij betreft een vreemd probleem aan.

Ik genereerde als test een XML documentje

PHP:
1
2
3
4
    header('Content-Type: text/xml');
    $doc = new DOMDocument();
    $doc -> loadXML('<root><note><author>BierPul</author><text>Hoi</text></note><note><author>BierPul</author><text>Hoi note 2</text></note></root>');
    echo $doc->saveXML();


Ik gooi gewoon even wat XML in een string om snel aan test data te komen ;) , deze komt netjes als XML terug (vb: http://www.topbillin.nl/www/xml/return.notes.php)

Daarnaast heb ik een XSL docje wat de data netjes laat zien (getest met een statische XML file).

Het vage probleem komt kijken bij de transformatie.

Als ik de file probeer in te lezen met domDocument load dan krijg ik de volgende error:

code:
1
Warning: DOMDocument::load() [function.load]: Start tag expected, '<' not found in /www/aaasites/www/xml/return.notes.php, line: 6 in /www/aaasites/www/show.php on line 8


Als ik de output van de XML via domDocument loadXML aanbied gaat het wel goed, ik heb dan code als

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
        $Xslt = new xsltProcessor;

        $Stylesheet = domDocument::load('xslt/home.xsl');

        $Xslt->importStylesheet($Stylesheet);

        $Xml = domDocument::loadXML('<root><note><author>BierPul</author><text>Hoi</text></note><note><author>BierPul</author><text>Hoi note 2</text></note></root>');

    
        echo $Xslt->transformToXML($Xml);
    
ipv

        $Xslt = new xsltProcessor;

        $Stylesheet = domDocument::load('xslt/home.xsl');

        $Xslt->importStylesheet($Stylesheet);

        $Xml = domDocument::load('xml/return.notes.php');
        echo $Xslt->transformToXML($Xml);

?>


Ik kan dit probleem niet verklaren aangezien het toch beiden gewoon om een simpele XML string gaat :? Of zie ik iets cruciaals over het hoofd :?

[ Voor 28% gewijzigd door BierPul op 09-07-2005 23:32 ]

Ja man


  • b19a
  • Registratie: September 2002
  • Niet online
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

// Load the XML source
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attach the xsl rules

echo $proc->transformToXML($xml);

?> 
ze doen het op php.net niks anders in het voorbeeld. Hoe ziet jouw xml bestand eruit?

[ Voor 8% gewijzigd door b19a op 10-07-2005 00:13 . Reden: php moet natuurlijk xml zijn :*) ]


  • BierPul
  • Registratie: Juni 2001
  • Nu online

BierPul

2 koffie graag

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
  <?xml version="1.0" ?> 
- <root>
- <note>
  <author>BierPul</author> 
  <text>Hoi</text> 
  </note>
- <note>
  <author>BierPul</author> 
  <text>Hoi note 2</text> 
  </note>
  </root>


Dit is een directe copy paste vanuit IE :)

Ja man


  • b19a
  • Registratie: September 2002
  • Niet online
ok stom...niet aan gedacht. Maar dan denk ik dat dit je fout is:
PHP:
1
$Xml = domDocument::load('xml/return.notes.php');
Hij pakt niet de output van return.notes.php, maar je script! Je moet dat bestand via http://(mijnadres).php aanvragen, of een include doen op het bestand en een xml laten poepen via een methode.

  • BierPul
  • Registratie: Juni 2001
  • Nu online

BierPul

2 koffie graag

Topicstarter
Mijn dank is groot :)

Ondertussen was ik inderdaad al aan de gang gegaan met het samenstellen van een xml string en die in te lezen, lijkt dat het nog best flexibel is ;)

Maar voor de 'statische info' kan ik het nu mooi oplossen ;)

Ja man


  • b19a
  • Registratie: September 2002
  • Niet online
BierPul schreef op zondag 10 juli 2005 @ 00:52:
Mijn dank is groot :)

Ondertussen was ik inderdaad al aan de gang gegaan met het samenstellen van een xml string en die in te lezen, lijkt dat het nog best flexibel is ;)

Maar voor de 'statische info' kan ik het nu mooi oplossen ;)
Als het dynamisch moet zijn, dan maak je in de aan te roepen exporter toch een domDocument aan die je via een methode kunt oproepen in je eigen logica? Mocht je dan de xml expliciet nodig hebben van diezelfde exporter, dan kun je daar een ander php bestandje voor maken die dat doet!
Pagina: 1