eclipxe/xmlresourceretriever

本地存储的XSD和XLST资源下载器

v2.0.2 2024-03-08 23:12 UTC

This package is auto-updated.

Last update: 2024-09-09 19:02:26 UTC


README

Source Code Packagist PHP Version Support Latest Version Software License Build Status Scrutinizer Coverage Status Total Downloads

本地存储的XSD和XLST资源下载器

此库的目的是从互联网递归下载XML资源到本地存储以供进一步使用。目前它只允许Schema(XSL)和转换(XSLT),但可以通过实现RetrieverInterface接口或扩展AbstractXmlRetriever类轻松扩展。

对于每个下载的文件,它将覆盖其依赖关系到一个相对位置,这样,每个依赖关系都应该可以离线工作。

您可以使用本地的PhpDownloader对象,它简单地使用copy函数从互联网获取并存储文件。您也可以根据您的需求使用自己的DownloaderInterface实现。如果您构建了一个可配置且有用的下载器类,请随时将其贡献给此项目。

安装

使用composer,因此请运行

composer require eclipxe/xmlresourceretriever

基本用法

<?php
declare(strict_types=1);
/*
 * This will download the file into
 * /project/cache/www.sat.gob.mx/sitio_internet/cfd/3/cadenaoriginal_3_3/cadenaoriginal_3_3.xslt
 * and all its includes and imports (currently 27 files)
 */
use Eclipxe\XmlResourceRetriever\XsltRetriever;
$xslt = new XsltRetriever('/project/cache');
$local = $xslt->retrieve('http://www.sat.gob.mx/sitio_internet/cfd/3/cadenaoriginal_3_3/cadenaoriginal_3_3.xslt');
echo $local; /* /project/cache/www.sat.gob.mx/sitio_internet/cfd/3/cadenaoriginal_3_3/cadenaoriginal_3_3.xslt */

检索更多信息

这些方法适用于XslRetrieverXsltRetriever

  • retrieve($url)递归下载一个URL并将其存储在检索器的基本路径中,它更改包含对其他文件引用的子元素。
  • download($url)下载一个URL并将其存储在检索器的基本路径中。它不验证文件是否有XML错误。它不下载依赖关系。
  • buildPath($url)返回一个文件应该存储的位置,根据基本路径。
  • setDownloader($downloader)将默认的PhpDownloader更改为自定义实现。

XsdRetriever搜索命名空间http://www.w3.org/2001/XMLSchemaimportinclude元素。

XsltRetriever搜索命名空间http://www.w3.org/1999/XSL/Transformimportinclude元素。

PHP支持

此库与最新的PHP支持版本兼容。请尝试使用语言的全部潜力。

贡献

欢迎贡献!请阅读CONTRIBUTING以获取详细信息,并不要忘记查看TODOCHANGELOG文件。

版权和许可

Eclipxe\XmlResourceRetriever库版权© Carlos C Soto,许可使用MIT许可(MIT)。有关更多信息,请参阅LICENSE