Ik ben opzoek naar een manier om de gegevens en de afbeeldingen uit xml documenten zichtbaar te maken in html.
Een voorbeeld xml ziet er als volgd uit:
<?xml version="1.0" encoding="UTF-8"?><profilephotos><photo><file><![CDATA[http://server.com/images/image01.jpg]]></file><caption/><link><![CDATA[http://server.com/image01]]></link></photo></profilephotos>
Nu kunnen sommige xml's meerdere afbeeldingen bevatten.
Iemand een idee hoe ik dit kan koppelen aan html?Aangezien ik meerdere xml's heb wil ik in de xml geen aanpassingen maken.
alvast super bedankt
(Bewerkt door Timmy om 23:07, 13-11-2007)
Ik ben ook op zoek naar hoe je het toe kan passen op Mac OSX met name in PHP. De website van Marc Lynage (Entropy.ch) heeft een mooi Mac OS X programma'tje TestXSLT waarmee je met XSLT kunt spelen. Je neemt een XML file past er een XSLT stylesheet aan toe en er komt HTML uit. Echt heel gaaf en hij heeft er sample files (xml en HTML) bij gedaan.
Met XSLT kun je zelfs van een XML file een PDF maken!!
Als je er achter ben hoe het werkt met PHP enzo zou ik graag een voorbeeldje willen mee pikken.
Mac OS X zelf gebruikt ontiegelijk veel XML files voor bv configuratie settings, iPhoto en iTunes gebruiken allemaal XML als flat file databases.
(Bewerkt door denn88 om 10:38, 11-11-2007)
(Bewerkt door denn88 om 10:39, 11-11-2007)
maar nu moet ik nog
<![CDATA[http://server.com/images/image01.jpg]]>
<file><![CDATA[http://server.com/images/image01.jpg]]></file>
omzetten naar een "img src"
Klopt dat en hoe doe ik dat?
Misschien anders op dit forum?
Je xml voorbeeld is overigens geen valide xml...
(Bewerkt door Spinsels om 21:27, 12-11-2007)
Deze gegevens wil ik dus linken aan html. Veel kennis heb ik nieten weet alleen dat ik het wil zien. Stijlen ed. vind ik in eerste instantienog niet zo belangrijk (wel tof).
Of moet ik iest anders aangeven? ^^' (DW aanwezig)
Wat zou een letterlijke code kunnen zijn die bij mijn toepassing werkt?
(Bewerkt door Timmy om 22:01, 12-11-2007)
<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="test.xsl"?><plaatjes> <plaatje uri="plaatje.jpg" breedte="150" /></plaatjes>
<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:output method="html" /><xsl:template match="/plaatje"><html><head></head><body><xsl:for-each select="plaatje"> <xsl:element name="img"> <xsl:attribute name="src"><xsl:value-of select="@uri" /></xsl:attribute> <xsl:attribute name="width"><xsl:value-of select="@breedte" /></xsl:attribute> </xsl:element></xsl:for-each></body></html>
Ik weet 't, ik weet 't, het ziet er erg vreemd uit, maar als ik een "<" typ, dan verdwijnt de hele tag.Verander de < door <en de > door >
Er is trouwens nog een manier, door geen attributen bij de elementen te gebruiken in je xml bestand, maar child-elementen. In je xsl-bestand krijg je dan geen "@": select="uri" ipv select="@uri".
Werkt bij mij wel...
"SAXParseException: The input ended before all started tags were ended. Last tag started was 'xsl:template' (test.xsl, line 17, column 9)"
</xsl:template></xsl:stylesheet>
om te sluiten ^^Maar nu heb ik een witte pagina... zonder afbeelding
(Bewerkt door Timmy om 22:32, 12-11-2007)
En hoe heb je de xml-code in je code blok gekregen? Bij mij lukt dat dus echt niet
< file>< ![CDATA[http://server.com/images/image01.jpg]]></file>
< a>< xsl:attribute name="href">< xsl:value-of select="profilephotos/photo/link" disable-output-escaping="yes"/></xsl:attribute>< xsl:element name="img">< xsl:attribute name="src">< xsl:value-of select="profilephotos/photo/file" disable-output-escaping="yes"/></xsl:attribute>< /xsl:element></a>
Haal wel even alle returns uit de XML code.
< file>< ![CDATA[http://server.com/images/image01.jpg]]>< /file> ipv< file>< ![CDATA[http://server.com/images/image01.jpg]]>< /file>
In de code staan spatie's achter < haal deze spatie weg.
Succes.
Maar hoe krijg ik nu alle records te zien? (dus alle afbeeldingen?)
denn88, nej ik gebruik nu weer dreamweaver.Hier werk ik altijd al in en is voor mij een handeling minder.(het is een tester en geen bouw ding ^^ )
Succes
Dit is wat ik nu heb:
<!-- DWXMLSource="photosXML.ashx.xml" --><!DOCTYPE xsl:stylesheet [<!ENTITY nbsp " "><!ENTITY copy "©"><!ENTITY reg "®"><!ENTITY trade "™"><!ENTITY mdash "—"><!ENTITY ldquo "“"><!ENTITY rdquo "”"> <!ENTITY pound "£"><!ENTITY yen "¥"><!ENTITY euro "€">]><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:output method="html"/><xsl:template match="/"><html xmlns="http://www.w3.org/1999/xhtml" xmlns:spry="http://ns.adobe.com/spry/"><script src="SpryAssets/xpath.js" type="text/javascript"></script><script src="SpryAssets/SpryData.js" type="text/javascript"></script><script type="text/javascript"><xsl:text disable-output-escaping="yes"><![CDATA[var ds1 = new Spry.Data.XMLDataSet("photosXML.ashx.xml", "profilephotos/photo/file",{sortOnLoad:"file",sortOrderOnLoad:"ascending"});ds1.setColumnType("file", "image");]]></xsl:text></script><body><div spry:region="ds1"> <table> <tr> <th>File</th> </tr> <tr spry:repeat="ds1"> <td><img src="{file}"/></td> </tr> </table></div></body></html></xsl:template></xsl:stylesheet>
<xsl:output method="html"/><xsl:template match="/"><html xmlns="http://www.w3.org/1999/xhtml" xmlns:spry="http://ns.adobe.com/spry/"><script src="SpryAssets/xpath.js" type="text/javascript"></script><script src="SpryAssets/SpryData.js" type="text/javascript"></script><script type="text/javascript"><xsl:text disable-output-escaping="yes"><![CDATA[var ds1 = new Spry.Data.XMLDataSet("photosXML.ashx.xml", "profilephotos/photo/file",{sortOnLoad:"file",sortOrderOnLoad:"ascending"});ds1.setColumnType("file", "image");]]></xsl:text></script><body>
<div spry:region="ds1"> <table> <tr> <th>File</th> </tr> <tr spry:repeat="ds1"> <td><img src="{file}"/></td> </tr> </table></div>
</body></html></xsl:template></xsl:stylesheet>
Nu heb ik allemaal x'jes waar hij geen afbeelding toont.Repeat werkt wel.
(Bewerkt door Timmy om 20:50, 13-11-2007)
(Bewerkt door Timmy om 20:52, 13-11-2007)
hoe krijg je de code in je code-blok?
Mijn eerste interpertatie is copy-pastein Dreamweaver. Maar dat is vast niet watjij bedoeld.
Ik heb trouwens:
< img src="{file}"/>
<xsl:element name="img"> <xsl:attribute name="src"><xsl:value-of select="profilephotos/photo/file" disable-output-escaping="yes"/></xsl:attribute> </xsl:element>
(Bewerkt door Timmy om 21:12, 13-11-2007)
<xsl:for-each select="profilephotos/photo"><a><xsl:attribute name="href"><xsl:value-of select="link" disable-output-escaping="yes"/></xsl:attribute><xsl:element name="img"><xsl:attribute name="src"><xsl:value-of select="file" disable-output-escaping="yes"/></xsl:attribute></xsl:element></a></xsl:for-each><?xml version="1.0" encoding="UTF-8"?> <profilephotos> <photo> <file><![CDATA[http://server.com/images/image01.jpg]]></file> <caption/><link><![CDATA[http://server.com/image01]]></link></photo><photo> <file><![CDATA[http://server.com/images/image02.jpg]]></file> <caption/><link><![CDATA[http://server.com/image01]]></link> </photo> </profilephotos>
<?xml version="1.0" encoding="UTF-8"?> <profilephotos> <photo> <file><![CDATA[http://server.com/images/image01.jpg]]></file> <caption/><link><![CDATA[http://server.com/image01]]></link></photo><photo> <file><![CDATA[http://server.com/images/image02.jpg]]></file> <caption/><link><![CDATA[http://server.com/image01]]></link> </photo> </profilephotos>
Alleen de sluit-tags blijven staan.
Het eerder genoemde effect van de wegvallende tags komt alleen voor bij Voorvertoning.Niets aan de hand dus.
Sorry!
Zo, opgelost. Iedereen bedankt!
Nog eens de opossing:
XML:
<?xml version="1.0" encoding="UTF-8"?><profilephotos><photo><file><![CDATA[http://server.com/images/image01.jpg]]></file><caption/><link><![CDATA[http://server.com/image01]]></link></photo><photo><file><![CDATA[http://server.com/images/image02.jpg]]></file><caption/><link><![CDATA[http://server.com/image01]]></link> </photo></profilephotos>
xsl:
<!-- DWXMLSource="photosXML.ashx.xml" --><!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> <!ENTITY copy "©"> <!ENTITY reg "®"> <!ENTITY trade "™"> <!ENTITY mdash "—"> <!ENTITY ldquo "“"> <!ENTITY rdquo "”"> <!ENTITY pound "£"> <!ENTITY yen "¥"> <!ENTITY euro "€">]><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:output method="html"/><xsl:template match="/"><html xmlns="http://www.w3.org/1999/xhtml" xmlns:spry="http://ns.adobe.com/spry/"><script src="SpryAssets/xpath.js" type="text/javascript"></script><script src="SpryAssets/SpryData.js" type="text/javascript"></script><script type="text/javascript"><xsl:text disable-output-escaping="yes"><![CDATA[var ds1 = new Spry.Data.XMLDataSet("photosXML.ashx.xml", "profilephotos/photo/file",{sortOnLoad:"file",sortOrderOnLoad:"ascending"});]]></xsl:text></script><body><xsl:for-each select="profilephotos/photo"><a><xsl:attribute name="href"><xsl:value-of select="link" disable-output-escaping="yes"/></xsl:attribute><xsl:element name="img"><xsl:attribute name="src"><xsl:value-of select="file" disable-output-escaping="yes"/></xsl:attribute></xsl:element></a></xsl:for-each></body></html></xsl:template></xsl:stylesheet>
<xsl:output method="html"/><xsl:template match="/"><html xmlns="http://www.w3.org/1999/xhtml" xmlns:spry="http://ns.adobe.com/spry/"><script src="SpryAssets/xpath.js" type="text/javascript"></script><script src="SpryAssets/SpryData.js" type="text/javascript"></script><script type="text/javascript"><xsl:text disable-output-escaping="yes"><![CDATA[var ds1 = new Spry.Data.XMLDataSet("photosXML.ashx.xml", "profilephotos/photo/file",{sortOnLoad:"file",sortOrderOnLoad:"ascending"});]]></xsl:text></script>
<body>
<xsl:for-each select="profilephotos/photo"><a><xsl:attribute name="href"><xsl:value-of select="link" disable-output-escaping="yes"/></xsl:attribute><xsl:element name="img"><xsl:attribute name="src"><xsl:value-of select="file" disable-output-escaping="yes"/></xsl:attribute></xsl:element></a></xsl:for-each>
Met belangstelling zie ik uit naar jullie antwoord.
Groet, Marco (die af en toe ook wel eens hoofdpijn heeft, waarom de website-voorvertoning in de browser maar niet op het ontwerp wil gaan lijken... $#@&^*@# )
P.S. Overigens ik gebruik geen Dreamwever, maar Aptana om xhtml + css te coden. Freeware, en helemaal fantastisch; het heeft een foutmeldings-tool. Als ik iets niet-w3c valid intik, wordt ik daar meteen op gewezen. Ideaal!