gpupo / pipe2
Convert Google Shopping XML format to XMLPipe2 format
Requires
- php: >=5.5
- ext-xml: *
- cocur/slugify: ~1.0
- gpupo/common: ~1.3
- gpupo/common-schema: ~1.0
- symfony/console: ~2.3
- twig/twig: ~1.0
Requires (Dev)
- phpunit/phpunit: ~4.0
README
Pipe2
XML command line Tool
Installation
The Pipe2 is a small PHP application that must be installed once in your computer.
Installation on Linux and Mac OS X
sudo curl -LsS https://github.com/gpupo/pipe2/releases/download/1.1/pipe2.phar -o /usr/local/bin/pipe2;
sudo chmod a+x /usr/local/bin/pipe2;
Installation on Windows
c:\> php -r "readfile('https://github.com/gpupo/pipe2/releases/download/1.1/pipe2.phar');" > pipe2
Then, just run pipe2
.
Usage
Convert XML file to XMLPipe2 format;
pipe2 convert data/acme.googleshopping.xml
This example uses the input sample file data/acme.googleshopping.xml
Merge XML Documents with Similar Structure Where Second Document Contains Attributes:
pipe2 merge-attributes data/acme.googleshopping.xml data/merge/attributes/secondDocument.xml --idField="g:id" --pretty=true
This example uses the input sample files data/acme.googleshopping.xml and data/merge/attributes/secondDocument.xml and creates the output sample file data/merge/attributes/output.xml
Generate Markdown Documentation from PhpUnit XML
phpdoc -d ./src/ -t ./build/ --template="xml" --cache-folder=/tmp;
pipe2 documentor build/structure.xml Api.md;
Advanced
with channel name:
pipe2 convert --channel=amazon data/acme.googleshopping.xml
Generate blank document with nicely formats output with indentation:
pipe2 generate --pretty=true
Available commands
Command | Description |
---|---|
convert |
Convert Xml file to XMLPipe2 format |
merge-attributes |
Merge XML Documents with Similar Structure Where Second Document Contains Attributes |
generate |
Generate blank Document xmlpipe2 format |
list |
Lists commands |
help |
Displays help for a command |
Help
Displays help for a command
pipe2 help convert;
pipe2 help generate;
Samples
This example uses the input sample file data/acme.googleshopping.xml and creates the output sample file data/acme.xmlpipe2.xml:
pipe2 convert --channel=acme data/acme.googleshopping.xml > data/acme.xmlpipe2.xml
Sphinx Search Index Example
source acmeSource
{
type = xmlpipe
xmlpipe_command = /usr/local/bin/pipe2 convert --channel=acme /tmp/data/acme.googleshopping.xml
}
index acmeIndex
{
source = acmeSource
path = /var/sphinx/acmeIndex
charset_type = utf-8
mlock = 0
morphology = none
enable_star = 1
min_prefix_len = 2
expand_keywords = 1
min_word_len = 2
}
For Sphinx Search config file example, see data/sphinx.sample.conf
Requirements
- PHP needs to be a minimum version of PHP 5.4 and PHP XML Lib;
- PHP with 2GB of memory or more memory is highly recommended;
Todo
- convert remote files
- deal with
gz
compression merge-elements
: Merge XML Documents with Similar Structure Where Second Document Contains Additional Elements
License
MIT, see LICENSE.