serkin / ymlparser
yml(yandex.market.ru) 文件解析器
v1.1.2
2015-04-30 11:41 UTC
Requires
- php: >=5.5
- ext-mbstring: *
- ext-xmlrpc: *
Requires (Dev)
- phpunit/phpunit: 4.6.*
This package is not auto-updated.
Last update: 2024-09-28 17:43:45 UTC
README
yml(yandex.market.ru) 文件的解析器。
YMLParser 默认使用两种类型的解析
- XMLReader - 用于中等和大型的 XML 文件
- SimpleXML - 用于小型的 XML 文件
安装
通过 Composer
composer require serkin/ymlparser ~1.1
使用
从文件中获取所有报价
include 'vendor/autoload.php'; $filename = '/path/to/file/file.xml'; // XMLReader driver - for medium and large xml files // SimpleXML driver - for small xml files $parser = new \YMLParser\YMLParser(new \YMLParser\Driver\XMLReader); $parser->open($filename); // throws \Exception if $filename doesn't exist or empty foreach($parser->getOffers() as $offer): // YMLParser::getOffers() returns \Generator echo $offer['url']; endforeach;
从经过筛选的文件中获取所有报价
YMLParser::getOffers() 可以接受一个筛选函数作为参数。筛选函数应该是一个匿名函数,返回 true 或 false
include 'vendor/autoload.php'; $filename = '/path/to/file/file.xml'; $parser = new \YMLParser\YMLParser(new \YMLParser\Driver\SimpleXML); $parser->open($filename); // We want offers only with not empty url subelements $filter = function($element) { return !empty($element['url']); }; $offers = iterator_to_array($parser->getOffers($filter)); // Let's get all params from first offer if they are exist foreach($offers[0]['params'] as $param): echo $param['name'] . ' - ' . $param['value']; endforeach;
依赖
- PHP: >= 5.5
- xmlrpc 扩展
- mbstring 扩展
贡献
- 发送拉取请求
许可
- MIT
待办事项
- getCurrencies()
- setDefaultCurrency()
- 根据设置的默认货币计算报价
测试
phpunit
可扩展性
您可以创建自己的驱动。您需要在您的类中实现 YMLParser\Driver\DriverInterface 接口。