Toon posts:

xml naar php

Pagina: 1
Acties:
  • 38 views sinds 30-01-2008

Verwijderd

Topicstarter
ik heb een xml document
test.xml
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="ISO8859-1" ?>

<AANBIEDINGEN>
    <AANBIEDING>
           <NAAM>Kb</NAAM>
       <OMSCHRIJVING>Ook deze sokken worden veel gebruikt voor het dragen in skates. Ze zijn een stuk dunner maar ook erg warm.</OMSCHRIJVING>
       <FOTO>20.JPG</FOTO>
       <PRIJS>14,99</PRIJS>
    </AANBIEDING>
    <AANBIEDING>
        <NAAM>Gsus</NAAM>
        <OMSCHRIJVING>Rokje met tijgerprint en een licht-rose riempje.</OMSCHRIJVING>
        <FOTO>12.JPG</FOTO>
        <PRIJS>179,95</PRIJS>
    </AANBIEDING>
</AANBIEDINGEN>

en een xsl document (test.xsl)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
    <html>
    <body class="aanbiedingen">
    <table border="0" width="100%">
      <tr>
        <td>Hieronder zijn de huidige aanbiedingen te zien.</td>
      </tr>    
    <xsl:for-each select="AANBIEDINGEN/AANBIEDING">
      <tr><td><br></br></td></tr>
      <tr>
        <td style="border-style: solid"><xsl:value-of select="NAAM"/></td>
      </tr>
      <tr>
        <td style="border-style: solid" align="center"><img>
    <xsl:attribute name="src">COLLECTIE/<xsl:value-of select="FOTO"/>
    </xsl:attribute>
    </img></td>
      </tr>
      <tr>
        <td style="border-style: solid"><xsl:value-of select="OMSCHRIJVING"/></td>
      </tr>
      <tr>
        <td style="border-style: solid" align="right"><xsl:value-of select="PRIJS"/></td>
      </tr>
    </xsl:for-each>
    </table>
  </body>
  </html>
  </link>
</xsl:template>
</xsl:stylesheet>

en uiteraard een html document (test.html)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head>
</head>
<body>
<script language="javascript">
// Load XML
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("test.xml")

// Load the XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("test.xsl")

// Transform
document.write(xml.transformNode(xsl))
</script>
</body>
</html>


ik wil het nu zo maken dat ik de waardes die er uit komen in de test.xsl op kan slaan in een php variabelen.

ik heb het volgende geprobeert tussen de test.xsl te plaatsen maar dit had geen resultaat:
PHP:
1
<?php $test = "<xsl:value-of select='OMSCHRIJVING'/>"; ?>


Weet iemand een andere oplossing?

  • simon
  • Registratie: Maart 2002
  • Laatst online: 21-08 13:41
Ik geloof dat je even op php.net moet kijken naar de bij php ingebouwde oplossingen, ik ben niet zo bekwaam met xml, maar ik geloof dat php dit aardig zelf kan..

|>


  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 17-08 10:28
ehm www.php.net/xml misschien iets voor jou ?

hiermee kun je je "eigen" parsertje schrijven en dus ook variabelen aanmaken met de content uit de xml

edit: aargh too slow :p

[ Voor 13% gewijzigd door Helmet op 01-06-2003 14:35 ]

Icons are overrated


  • B-Man
  • Registratie: Februari 2000
  • Niet online
PHP = ServerSide, en als ik je code zo zie, gebruik je een tweetal client side ActiveX objecten. De activeX objecten zijn actief op de client, PHP (op de server) "ziet" ze niet, en kan er dan ook niets mee. Door je XML/XSL server side te verwerken m.b.v. PHP kan je deze twee zaken mogelijk wel integreren.

[ Voor 3% gewijzigd door B-Man op 01-06-2003 14:58 ]


Verwijderd

Topicstarter
ik heb nu de volgende php code (test.php)
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php

$file = "test.xml";
$map_array = array(
    "BOLD"     => "B",
    "EMPHASIS" => "I",
    "LITERAL"  => "TT"
);

function startElement($parser, $name, $attrs) {
    global $map_array;
    if ($htmltag = $map_array[$name]) {
        print "<$htmltag>";
    }
}

function endElement($parser, $name) {
    global $map_array;
    if ($htmltag = $map_array[$name]) {
        print "</$htmltag>";
    }
}

function characterData($parser, $data) {
    print $data;
    print "<br>";
}

$xml_parser = xml_parser_create();

characterData(city, $data);

// use case-folding so we are sure to find the tag in $map_array
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {

    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);

?>


hij geeft nu netjes de output maar hij geeft alle output ik wil alleen een aantal outputs in verschillende variabalen zetten (of in een array) zoals prijs zodat ik hier later mee kan rekenen

weet iemand een oplossing?

[ Voor 11% gewijzigd door Verwijderd op 01-06-2003 15:55 ]


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Enneuh... Lees de faq eens na over zelf dingen uitzoeken en proberen en dubbelposten.

Ga hier maar verder: [rml][ xml->php] data in array[/rml]
Pagina: 1

Dit topic is gesloten.