jdomenechb/xslt2processor

此包已废弃且不再维护。未建议替代包。

PHP 的 XSLT v2 处理器

dev-master 2017-12-16 15:13 UTC

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$xmlDOMDocument 对象,分别包含 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)。