1. Go to this page and download the library: Download prewk/xml-string-streamer library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
prewk / xml-string-streamer example snippets
// Convenience method for creating a file streamer with the default parser
$streamer = Prewk\XmlStringStreamer::createStringWalkerParser("gigantic.xml");
while ($node = $streamer->getNode()) {
// $node will be a string like this: "<customer><firstName>Jane</firstName><lastName>Doe</lastName></customer>"
$simpleXmlNode = simplexml_load_string($node);
echo (string)$simpleXmlNode->firstName;
}
use Prewk\XmlStringStreamer;
use Prewk\XmlStringStreamer\Stream;
use Prewk\XmlStringStreamer\Parser;
// Prepare our stream to be read with a 1kb buffer
$stream = new Stream\File("gigantic.xml", 1024);
// Construct the default parser (StringWalker)
$parser = new Parser\StringWalker();
// Create the streamer
$streamer = new XmlStringStreamer($parser, $stream);
// Iterate through the `<customer>` nodes
while ($node = $streamer->getNode()) {
// $node will be a string like this: "<customer><firstName>Jane</firstName><lastName>Doe</lastName></customer>"
$simpleXmlNode = simplexml_load_string($node);
echo (string)$simpleXmlNode->firstName;
}
$CHUNK_SIZE = 1024;
$provider = new Prewk\XmlStringStreamer\Stream\File("large-xml-file.xml", $CHUNK_SIZE);
$CHUNK_SIZE = 1024;
$fsp = new Prewk\XmlStringStreamer\Stream\Stdin($CHUNK_SIZE);
use Prewk\XmlStringStreamer;
use Prewk\XmlStringStreamer\Parser;
use Prewk\XmlStringStreamer\Stream;
$options = array(
"captureDepth" => 3
);
$parser = new Parser\StringWalker($options);
use Prewk\XmlStringStreamer;
use Prewk\XmlStringStreamer\Parser;
use Prewk\XmlStringStreamer\Stream;
$options = array(
"uniqueNode" => "TheNodeToCapture"
);
$parser = new Parser\UniqueNode($options);
use Prewk\XmlStringStreamer;
use Prewk\XmlStringStreamer\Stream\File;
use Prewk\XmlStringStreamer\Parser\StringWalker;
$file = "path/to/file.xml";
// Save the total file size
$totalSize = filesize($file);
// Construct the file stream
$stream = new File($file, 16384, function($chunk, $readBytes) use ($totalSize) {
// This closure will be called every time the streamer requests a new chunk of data from the XML file
echo "Progress: $readBytes / $totalSize\n";
});
// Construct the parser
$parser = new StringWalker;
// Construct the streamer
$streamer = new XmlStringStreamer($parser, $stream);
// Start parsing
while ($node = $streamer->getNode()) {
// ....
}
use Prewk\XmlStringStreamer;
use Prewk\XmlStringStreamer\Stream\File;
use Prewk\XmlStringStreamer\Parser\StringWalker;
$file = "path/to/file.xml";
// Construct the file stream
$stream = new File($file, 16384);
// Construct the parser
$parser = new StringWalker(array(
"extractContainer" => true, // Required option
));
// Construct the streamer
$streamer = new XmlStringStreamer($parser, $stream);
// Start parsing
while ($node = $streamer->getNode()) {
// ....
}
// Get the containing XML
$containingXml = $parser->getExtractedContainer();
$xmlObj = simplexml_load_string($containingXml);
$rootElementName = $xmlObj->getName();
$rootElementFooAttribute = $xmlObj->attributes()->foo;
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.