Я пытаюсь сгенерировать XML из базы данных MySQL. Приложению не нужно знать таблицы, которые существуют в базе данных.
функция такова, что вы вводите имя таблицы, и она генерирует для нее xml.
Функция работает отлично, но мне нужно стилизовать XML с XSL. поскольку приложение не знает, какую таблицу оно будет обрабатывать, запись предопределенного xsl сработала.
Может кто-нибудь подсказать, как можно программно написать xsl вместе с сгенерированным xml.
функция вставлена ниже.
PHP для генерации XML (genXMl.php):
<?
header("content-type:text/xml");
if(isset($_GET['tbl']))
{
$myServer = "localhost";
$myUser = "user";
$myPass = "pwd";
$myDB = "test";
$table = $_GET['tbl'];
function getXML($sql="Default Query")
{
$conn=mysql_connect("localhost","user","pwd");
$db=mysql_select_db("test");
$result = mysql_query($sql,$conn);
$columns="";
echo "<records>";
while($row=mysql_fetch_assoc($result))
{
$columns.="<record>";
foreach($row as $key => $value)
{
$columns.="<$key>$value</$key>";
}
$columns.="</record>";
}
echo $columns;
echo "</records>";
}
getXML("SELECT * FROM $table");
}
XSL:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My header</h2>
<table border="1">
<xsl:for-each select="records/record">
<tr>
<td><xsl:value-of select="<?php echo $key; ?>" /></td> //trying to style the $KEY
</tr>
<tr>
<td><xsl:value-of select="<?php echo $value;?>"/></td> //trying to style the $VALUE </tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>