1. Go to this page and download the library: Download lastwhitebird/lgml-parser 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/ */
lastwhitebird / lgml-parser example snippets
use \LWB\LGMLParser\Tree as Tree;
$tree = Tree::factoryFromFile('tree.lgml');
//serialization
file_put_contents('tree.json', $tree->toJSON());
//accessing tree nodes
if (isset($tree['domains'][0]))
foreach ($tree['domains'][0] as $domain)
$domains[$domain['@!element']] = $domain['@'];
namespace LWB\LGMLParser;
class Tree
{
use Tree\Quotes;
/* 2 helper methods. dunno, they must be in the Basic class probably */
public static function textNode($text);
public static function node($element, $attributes = [])
/* serialize methods */
public function __toString()
public function toXML($filename, $quote_function = false, $quote_attribute_function = false)
public function toJSON()
/* factory methods */
public static function factoryFromJSON($string, array $options = [])
public static function factoryFromFile($filename, array $options = [])
public static function factoryFromString($string, array $options = [])
public function fromJSON($string)
public function fromFile($filename)
/* the basic "read" method. You may use it with the generator yielding each line with no \r\n-s
* (working with sockets or whatever
*/
public function fromGenerator($generator)
namespace LWB\LGMLParser\Tree;
class Configurable extends Basic
{
/* yes, it's public. you may use it directly */
public $options;
/* all the methods are self-documenting */
public function __construct(array $options = []) {}
public function setOption($name, $value) {}
/* this 2 methods return $this */
public function setOptions(array $options) {}
public function getOption($name) {}
}
namespace LWB\LGMLParser\Tree;
trait Quotes
{
/* this un-escapes \" and \\ */
public static function unEscapeDoubleQuotes($string) {}
/* this un-escapes \' and \\ */
public static function unEscapeSingleQuotes($string) {}
/*this surrounds with proper quotes pair the 1st argument in k=>v pair of the
* markup language, i.e. element's or attribute's name if needed
*/
public static function quoteProperly1($string) {}
/* this surrounds with proper quotes pair the 2nd argument in k=>v pair of the
* markup language, i.e. attribute's value if needed
*/
public static function quoteProperly2($string) {}
/* adds indentation ($level spaces) to each every-but-1st line of the multiline string.
* if $first===true adds the same spaces to the 1st line.
* or $first*spaces if $first is not false
*/
public static function addIndent($level, $string, $first = false) {}
/* converts tabs to spaces (by default tab=4*space. use ->setOption('tabs') method
* to overrride
*/
private function normalizeTabs($string) {}
}
namespace LWB\LGMLParser\Tree;
class Basic
{
/* the tree data structure itself */
public $tree = null;
/* this allows us to iterate only certain kind of nodes, i.e. "table" */
public $filter = false;
/* "factory" method */
public static function factoryFromTree(array &$tree, $filter = false) {}
/* Iterating in foreach operator section */
function rewind() {}
function current() {}
function key() {}
function next() {}
function valid() {}
/* this allows us to get count($tree_instance) */
public function count() {}
/* check if tree_as_array's offset exists e.g.: isset($tree_object['table']) */
public function offsetExists($offset) {}
/* treating tree as array e.g.: $tree_object['table'][0] */
public function offsetGet($offset) {}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.