jdomenechb / xslt2processor
此包已废弃且不再维护。未建议替代包。
PHP 的 XSLT v2 处理器
dev-master
2017-12-16 15:13 UTC
Requires
- php: >= 5.6
- ext-mbstring: *
- ext-xml: *
- ext-xsl: *
- psr/cache: ^1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.3
- phpunit/phpunit: ^6.2
- symfony/cache: ^3.3
This package is auto-updated.
Last update: 2020-10-01 21:44:50 UTC
README
警告: 此项目处于 alpha 阶段,因此没有稳定版本,且只有部分支持。请自行承担风险,但欢迎通过拉取请求、错误问题或功能请求进行贡献。
XSLT2Processor 是一个纯 PHP 库,用于处理版本 2.0 及以下的 XSLT 样式表和 XPath 表达式。它支持
- XPath 语法解析、评估和查询
- 标准 XPath 函数库和 EXSLT 函数库
- 执行 XSLT v2.0 样式表
要求
此库需要
- PHP 5.6 或更高版本
- PHP 扩展 mbstring
- PHP 扩展 xml
- PHP 扩展 xsl
安装
Composer
要使用 composer 安装库,请在项目的根目录下运行以下命令
$ php composer.phar require jdomenechb/xslt2processor
使用方法
XSLT
要在代码中使用 XSLT2Processor
$processor = new Jdomenechb\XSLT2Processor\XSLT\Processor($xslt, $xml);
$result = $processor->transformXML();
$xslt 和 $xml 是 DOMDocument 对象,分别包含 XSLT 样式表和要转换的 XML,分别。
缓存
为了加快转换速度,可以提供一个遵循 PSR-6 建议 的 CacheItemPoolInterface 缓存类给处理器,以避免再次解析已解析的表达式。请注意,它应该在处理之前提供。
$processor->setCache($cacheItemPool);
如果无论如何都没有提供缓存,XPath 工厂有一个基于内存的内部缓存,可以重用当前模板中已解析的 XPath。请注意,尽管这可能会更快,但这种选项可能会使用更多内存。
XPath
可用的 XPath 类的完整列表可以在 XPath 源文件夹 下找到。但一般来说,开发者可能更感兴趣的是解析表示 XPath 的字符串。为此目的,Factory 类可能更有用。
$factory = new Jdomenechb\XSLT2Processor\XPath\Factory;
$xPath = $factory->create('/*/some/x-path[representation = 1]');
一旦你解析或构建了你的 xPath,你可以通过执行来评估或查询表达式
// Evaluates the expression
$evaluationResult = $xPath->evaluate($context);
// Queries the nodes represented by the expression
$queryResult = $xPath->query($context);
$content 可以是任何扩展 PHP 类 DOMNode 的元素(https://php.ac.cn/manual/en/class.domnode.php)。