magicianred / xnowi
项目xnowi基于一个简单的概念,通过XML和XSLT将内容与展示分离。一个XML文件和多个XSL文件可以生成许多不同的结果,不全是视觉的。
dev-master
2020-02-29 19:18 UTC
Requires
- php: >=5.6.0
- ext-xsl: >=5.6
This package is auto-updated.
Last update: 2024-09-29 05:29:04 UTC
README
项目xnowi基于一个简单的概念,通过XML和XSLT将内容与展示分离。一个XML文件和多个XSL文件可以生成许多不同的结果,不全是视觉的。
Xnowi是一个库,您可以将它包含到您的项目中,并调用方法通过XSL转换XML以生成源的新版本。
您可以使用Xnowi展示演示网站。
示例
您可以在以下仓库中查看使用示例 Xnowi_PHP_Example
安装
使用composer安装xnowi (https://packagist.org.cn/packages/magicianred/xnowi)
composer require magicianred/xnowi
基本使用
XML数据文件示例
<?xml version="1.0" encoding="ISO-8859-1" ?> <website> <name>Xs.WebUI</name> <denomination>xnowi not only web interface</denomination> <slogan>free software per realizzare siti con output multipli</slogan> </website>
XSLT文件示例
<?xml version="1.0" encoding="ISO-8859-1" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name="isLoggin">0</xsl:param> <xsl:param name="username">Ospite</xsl:param> <xsl:param name="language">it</xsl:param> <xsl:param name="lang_mode">cookie</xsl:param> <xsl:param name="mode">web</xsl:param> <xsl:param name="path"></xsl:param> <xsl:param name="pathRoot"></xsl:param> <xsl:param name="pathTheme">themes/web/</xsl:param> <xsl:param name="extTheme">.php</xsl:param> <xsl:param name="pageName">index</xsl:param> <xsl:param name="pageExt">.php</xsl:param> <xsl:param name="urlRoot">http://simone.paolucci.name/xnowi/</xsl:param> <xsl:template match="/"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{$language}"> <head> <xsl:call-template name="head" /> </head> <body> <div id="header"> <h1><strong><xsl:value-of select="//website/name" /></strong> <em>(<xsl:value-of select="//website/denomination" />)</em></h1> <p><xsl:value-of select="//website/slogan" /></p> </div> </body> </html> </xsl:template> <xsl:template name="head"> <title> <xsl:value-of select="//website/name" /> -<xsl:value-of select="//website/denomination" /> </title> <link type="text/css" rel="stylesheet" href="{$pathRoot}{$pathTheme}styles/web.css" media="screen" /> </xsl:template> </xsl:stylesheet>
您的PHP文件(以下示例的基础)
require_once __DIR__ . '/vendor/autoload.php'; // Autoload files using Composer autoload use Xnowi\Engine as xnowiEngine; $engine = new xnowiEngine(); $xmlPath = "/path/file.xml"; $xslPath = "/path/file.xsl";
进行简单的XML -> XSL转换
echo $engine->xTransformSimple( $xmlPath, $xslPath );
带有参数(XSL样式表)的转换
$params = array( 'isLoggin' => $isLoggin, 'username' => $username, 'language' => $engine->get_Lang() ); echo $engine->xTransformSimpleWithParams( $xmlPath, $xslPath, $Params );
带有内部化的转换
$xmlLangPath = "/path/langs/file.xml"; echo $engine->xTransformIntlSimple( $xmlPath, $xslPath, $xmlLangPath);
带有参数(XSL样式表)和内部化的转换
$xmlLangPath = "/path/langs/file.xml"; $params = array( 'isLoggin' => $isLoggin, 'username' => $username, 'language' => $engine->get_Lang() ); echo $engine->xTransformIntlWithParams( $xmlPath, $xslPath, $xmlLangPath, $Params);
静态网站生成器
进行简单的带有输出的转换
$fileOutput = "/html/index.htm"; echo $engine->xTransformOtpSimple( $xmlPath, $xslPath, $fileOutput);
带有参数(XSL样式表)和输出的简单转换
$fileOutput = "/html/index.htm"; $params = array( 'isLoggin' => $isLoggin, 'username' => $username, 'language' => $engine->get_Lang() ); echo $engine->xTransformOptSimpleWithParamsSimple( $xmlPath, $xslPath, $Params, $fileOutput);
带有参数(XSL样式表)和内部化的转换
$fileOutput = "/html/index.htm"; $xmlLangPath = "/path/langs/file.xml"; $params = array( 'isLoggin' => $isLoggin, 'username' => $username, 'language' => $engine->get_Lang() ); echo $engine->xTransformOptIntlWithParams( $xmlPath, $xslPath, $xmlLangPath, $Params, $fileOutput);
要求
- PHP > 5.6
- php.ini中的XSL扩展
关于版本0.2
这是项目的0.2版本(v.1版本仍可从SourceForge下载)在这个版本中引入了命名空间。