lyquidity/xpath2

为PHP提供XPath 2.0语句执行库

dev-develop 2023-01-11 01:07 UTC

This package is auto-updated.

Last update: 2024-09-11 04:53:52 UTC


README

目录

关于项目

PHP 包含一个XPath 1.0实现,但截至编写时,尚未包含处理XPath 2.0表达式的处理器。XPath查询预期将针对XML文档运行,并预期将尊重XML文档和查询暗示的类型。尽管PHP只有有限的类型系统(字符串、整数、双/浮点数、数组),但XPath处理过程将尊重所有XML类型,并将将一种类型的数据强制转换为另一种类型。

此库实现了针对PHP的XPath 2.0规范,并且能够通过大约15,000个XPath 2.0兼容性测试套件测试

请注意,此项目未实现XSLT 2.0处理器或XQuery语句评估器。

状态

XPath 2.0 conformance

使用的兼容性测试套件是XQTS 1.0.3 2010-09-17。由于许多测试XQuery,因此并未使用套件中定义的所有测试。使用的测试是声明了具有值为'true'的属性@is-XPath2的测试用例文档中的测试。大约有9,000个这样的测试。

统计数据

该项目包含191个文件中的53972行代码

动机

此项目是独立的,但也是XBRL项目的一部分。

XBRL公式广泛使用XPath 2.0,既用于计算公式定义的组成部分,也用于定义如何解释和将各种公式规范的各个方面转换为可执行代码。

依赖项

此项目依赖于pear/loglyquidity/xml

许可证

此项目采用GPL版本3.0发布

这意味着什么?

这意味着您可以按照自己的意愿使用源代码。但是,您对所做的任何更改的源代码必须对其他人可用,并且必须以与您在此项目中接收源代码相同的条款提供:在GPL v3.0许可证下。您必须将此项目的许可证包含在任何源代码的分发中,无论分发是否包含所有源代码或仅包含部分源代码。例如,如果您创建一个从该项目提供的类派生的类(例如,一个新的分类类),则是衍生作品。

这不意味着什么?

意味着您创建的仅使用此源代码的任何产品必须以GPL v3.0发布。如果您创建一个预算应用程序,该应用程序使用此项目的源代码访问实例文档中的数据,该数据由预算应用程序用于传输数据,则这不是衍生作品。

贡献

我们欢迎贡献。请参阅我们的贡献页面获取更多信息。如果您选择贡献,我们将要求您同意我们的贡献者许可协议(CLA)。我们要求您同意CLA中的条款,以确保其他用户使用的代码不会受到不同许可和专利责任的困扰。我们也强烈建议您查看我们的行为准则

安装

该项目可以通过composer进行安装。假设Composer已安装,且程序的快捷方式名为'composer',则安装此项目的命令为

composer require lyquidity/xpath2:dev-master lyquidity/utilities:dev-master lyquidity/xml:dev-master --prefer-dist

或者fork或下载仓库。还需要下载并安装XML实用工具pear/Log项目。

入门

示例文件夹包含了使用库对XML文档执行XPath 2.0查询的示例。

假设您已使用composer安装了库,则此PHP应用程序将运行测试

<php
require_once __DIR__ . '/vendor/autoload.php';
include __DIR__ . "/vendor/lyquidity/XPath2/examples/examples.php";