alexeyco
Новичок
Проблема с работой парсера XSLT
В папку C:\\Windows\System\ положил файлы: iconv.dll, expat.dll и sablot.dll из установленного у меня дистриба php.
При выполнении скрипта, например:
Конва получает такое:
Подозреваю, что обработчик, сволочь, не парсит ничерта... Что делать?
-~{}~ 21.08.07 22:31:
Господа! Ну неужели никто не подскажет ничего? Что может быть не так? Я проверял - связка работает в осле если ее разобрать на два статичных файла. В phpinfo() поддержка xslt стоит как enabled. Что делать то?
В папку C:\\Windows\System\ положил файлы: iconv.dll, expat.dll и sablot.dll из установленного у меня дистриба php.
При выполнении скрипта, например:
Код:
$xml = '<?xml version="1.0" encoding="WINDOWS-1251"?>
<tutorial>
<enimals>
<dogs>
<dog>
<dogName>sdfddfd</dogName>
<dogWeight caption="sdfd">18</dogWeight>
<dogColor>Dog 1</dogColor>
</dog>
<dog>
<dogName>sdfdfdf</dogName>
<dogWeight caption="sdsd">10</dogWeight>
<dogColor>Dog 11</dogColor>
</dog>
<dog>
<dogName>sdfsdfsdf</dogName>
<dogWeight caption="ddd">2</dogWeight>
<dogColor>Dog 111</dogColor>
</dog>
<dog>
<dogName>sdfsdf</dogName>
<dogWeight caption="dddd">25</dogWeight>
<dogColor>Dog 11111</dogColor>
</dog>
</dogs>
</enimals>
</tutorial>';
$xsl = '<?xml version="1.0" encoding="WINDOWS-1251" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:output method="html" indent="yes" encoding="Windows-1251"/>
<xsl:template match="/">
<table border="1">
<tr bgcolor="#CCCCCC">
<td align="center"><strong>sdfsdf</strong></td>
<td align="center"><strong>sdfdf</strong></td>
<td align="center"><strong>sdfdsf</strong></td>
</tr>
<xsl:for-each select="tutorial/enimals/dogs/dog">
<tr bgcolor="#F5F5F5">
<td><xsl:value-of select="dogName"/></td>
<td align="right"><xsl:value-of select="dogWeight"/> <xsl:value-of select="dogWeight/@caption"/></td>
<td><xsl:value-of select="dogColor"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>';
$arguments = array(
'/_xml' => $xml,
'/_xsl' => $xsl);
$xslt = xslt_create();
xslt_set_encoding($xslt, 'windows-1251');
$html = @xslt_process($xslt, 'arg:/_xml', "arg:/_xsl", NULL, $arguments);
if (empty($html)) {
die('Template->compile: XSLT processing error<textarea style="width: 400px; height: 300px;">'. xslt_error($xslt) . '</textarea>');
}
xslt_free($xslt);
echo $html;
Код:
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" version="1.0">
<xsl:output method="html" indent="yes" encoding="Windows-1251"/>
<xsl:template match="/">
<table border="1">
<tr bgcolor="#CCCCCC">
<td align="center">
<strong>sdfsdf</strong>
</td>
<td align="center">
<strong>sdfdf</strong>
</td>
<td align="center">
<strong>sdfdsf</strong>
</td>
</tr>
<xsl:for-each select="tutorial/enimals/dogs/dog">
<tr bgcolor="#F5F5F5">
<td>
<xsl:value-of select="dogName"/>
</td>
<td align="right">
<xsl:value-of select="dogWeight"/>
<xsl:value-of select="dogWeight/@caption"/>
</td><td><xsl:value-of select="dogColor"/>
</td></tr></xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
-~{}~ 21.08.07 22:31:
Господа! Ну неужели никто не подскажет ничего? Что может быть не так? Я проверял - связка работает в осле если ее разобрать на два статичных файла. В phpinfo() поддержка xslt стоит как enabled. Что делать то?