Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos.
Tenho um arquivo XML de nome: specials.xml
<?xml version="1.0" encoding="UTF-8"?>
<specials>
<menu_item id="1" course="app">
<name>Summer Salad</name>
<link>salad.html</link>
<description>organic butter lettuce with apples, blood oranges, gorgonzola, and raspberry vinaigrette</description>
<price>7</price>
</menu_item>
<menu_item id="2" course="app">
<name>Thai Noodle Salad</name>
<link>noodles.html</link>
<description>lightly sauteed in sesame oil with baby bok choi, portobello mushrooms, and scallions</description>
<price>6</price>
</menu_item>
</specials>
Preciso contruir duas paginas em PHP (testmaster.php que vai listar todos os produtos disponiveis no XML. Cada um destes produtos terá um link dinamico para a pagina testdetails.php que exibirá os detalhes do produto clicado na pagina anterior.
Com relação a exibição dos produtos na pagina testmaster.php já tenho a solução. Criei uma pagina testmaster.xsl abaixo:
<?xml version="1.0" encoding="UTF-8"?><!-- DWXMLSource="specials.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 version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8"/>
<xsl:template match="/">
<ul>
<xsl:for-each select="specials/menu_item">
<li>Codigo: <xsl:value-of select="@id"/><a href="#"><br />
</a>Nome:<a href="#"> <xsl:value-of select="name"/></a> </li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>que será "inserida" na pagina **testmaster.php** abaixo:
<?php
//XMLXSL Transformation class
require_once('includes/MM_XSLTransform/MM_XSLTransform.class.php');
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">](http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd)
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$mm_xsl = new MM_XSLTransform();
$mm_xsl->setXML("specials.xml");
$mm_xsl->setXSL("testmaster.xsl");
echo $mm_xsl->Transform();
?>
</body>
</html>
Não tenho suficiente conhecimentos em PHP (sempre usei o Dreamweaver em meus trabalhos) e nao consiguo achar um tutorial que me ensine a fazer estes links dinamicos me levem para a pagina testdetails.php que exibirá os detalhes do produto clicado. testdetails.php abaixo:
<?php
//XMLXSL Transformation class
require_once('includes/MM_XSLTransform/MM_XSLTransform.class.php');
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">](http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd)
<html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$mm_xsl = new MM_XSLTransform();
$mm_xsl->setXML("specials.xml");
$mm_xsl->setXSL("testdetails.xsl");
echo $mm_xsl->Transform();
?>
</body>
</html>
que usa o arquivo XSL testdetails.xsl abaixo:
<?xml version="1.0" encoding="UTF-8"?><!-- DWXMLSource="specials.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 version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8"/>
<xsl:template match="/">
Categoria:<xsl:value-of select="specials/menu_item/@course"/>
<br />
<br />
Codigo: <xsl:value-of select="specials/menu_item/@id"/><br />
<br />
Nome: <xsl:value-of select="specials/menu_item/name"/><br />
<br />
Descricao: <xsl:value-of select="specials/menu_item/description"/><br />
<br />
Price: £<xsl:value-of select="specials/menu_item/price"/>
</xsl:template>
</xsl:stylesheet>
*******OBS:Caso queiram testar estas paginas em seu servidor local, informo que todas elas ficam na pasta raiz.*
******
Espero poder contar com a ajuda de voces.
Carregando comentários...