Ночной странник

Сообщения: 4050
Благодарности: 83
|
Профиль
|
Сайт
|
Отправить PM
| Цитировать
тут возникал вопрос о том как можно выдирать какиенибуть данные из XML, и нашол следуещее решение:
PHP код: 
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:for-each select="//node()[name() = 'country']">
<xsl:value-of select="concat('$countryDirs[] = "', @name, '";')"/>
</xsl:for-each>
<xsl:for-each select="//node()[name() = 'info']">
<xsl:value-of select="concat('$infoDirs[] = "', ./../../node()/@name, '/', @name, '";')"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
PHP код: 
<?
function xml2html($f1, $f2, $debug = 0)
{
$XML = implode ('', file($f1));
$XSL = implode ('', file($f2));
$arguments = array('/_xml' => $XML,'/_xsl' => $XSL);
// Allocate a new XSLT processor
$xh = xslt_create();
// Process the document
$HTML = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);
if($debug)
{
header('Content-type: application/xml');
print $XML;
}
else
{
if ($HTML)
{
return str_replace('&', '&', $HTML);
}
else
{
echo " Sorry, sample.xml could not be transformed by sample.xsl into";
echo " the \$XML variable the reason is that " . xslt_error($xh);
echo " and the error code is " . xslt_errno($xh);
}
}
xslt_free($xh);
}
eval(xml2html('./geo.xml', './geo1.xslt'));
?>
<pre>
<?
print_r($countryDirs);
print_r($infoDirs);
?>
</pre>
вроде все очень просто и понятно...
|
-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!
Отправлено: 17:34, 12-06-2006
| #168
|