Skip to content

Anydataset Xml abstraction. Anydataset is an agnostic data source abstraction layer in PHP

License

Notifications You must be signed in to change notification settings

byjg/php-anydataset-xml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AnyDataset-Xml

Sponsor Build Status Opensource ByJG GitHub source GitHub license GitHub release

XML abstraction dataset for the AnyDataset library. AnyDataset is an agnostic data source abstraction layer in PHP.

Features

  • Simple XML Processing: Process XML data with a clean, consistent API
  • XPath Support: Use XPath expressions to select nodes and attributes
  • Namespace Support: Full support for XML namespaces
  • Repeated Node Handling: Automatically handles repeated nodes by returning arrays
  • Custom Field Processing: Define custom field mappings with closures/callbacks
  • Flexible Input: Accept XML as string, DOMDocument, XmlNode, or File object
  • AnyDataset Integration: Compatible with the AnyDataset abstraction layer

Documentation

Installation

composer require "byjg/anydataset-xml"

Quick Example

<?php
$xml = file_get_contents('example.xml');

$dataset = new \ByJG\AnyDataset\Xml\XmlDataset(
    $xml,        // The XML string, can also be an XmlNode, DOMDocument, or File object
    "book",      // The node that represents a row
    [
        "category" => "@category",
        "title" => "title",
        "lang" => "title/@lang",
        "lang2" => function ($row) {
            return substr($row->get('lang'), 0, 2);
        }
    ] // Mapping columns
);

$iterator = $dataset->getIterator();
foreach ($iterator as $row) {
    echo $row->get('category'); // Print COOKING, CHILDREN, WEB
    echo $row->get('title');    // Print Everyday Italian, Harry Potter, Learning XML
    echo $row->get('lang');     // Print en-US, de-DE, pt-BR
    echo $row->get('lang2');    // Print en, de, pt
}

Dependencies

flowchart TD
    byjg/anydataset-xml --> byjg/anydataset
    byjg/anydataset-xml --> ext-dom
Loading

Running the Unit Tests

vendor/bin/phpunit

Open source ByJG

About

Anydataset Xml abstraction. Anydataset is an agnostic data source abstraction layer in PHP

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors

Languages