Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pgooood/php-xml-lib
Handy wrapper for the PHP DOM, XPath and XSLTProcessor
https://github.com/pgooood/php-xml-lib
dom php-dom xml xpath xslt
Last synced: 29 days ago
JSON representation
Handy wrapper for the PHP DOM, XPath and XSLTProcessor
- Host: GitHub
- URL: https://github.com/pgooood/php-xml-lib
- Owner: pgooood
- License: mit
- Created: 2017-06-20T10:55:43.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-04-25T08:19:07.000Z (almost 3 years ago)
- Last Synced: 2024-11-10T18:47:21.745Z (3 months ago)
- Topics: dom, php-dom, xml, xpath, xslt
- Language: PHP
- Homepage:
- Size: 18.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PHP XML lib
Handy wrapper for the PHP DOM, XPath and XSLTProcessorManual is under construction.
Examples
-------
```php
$xml = new \pgood\xml\xml('demo.xml');//get string value (xpath)
$title = $xml->evaluate('string(/catalog/book[@id="bk103"]/title)');//get dom element (xpath)
$element = $xml->query('//book[2]')->item(0);//get subelement value (xpath)
$price = $element->evaluate('number(price)');
//or
$price = $xml->evaluate('number(price)',$element);//get attribute
$oldId = $element->id;
//or
$oldId = $element->getAttribute('id');//remove attribute
$element->id = null;
//or
$element->removeAttribute('id');//set attribute
$element->id = 'newId';
//or
$element->setAttribute('id','newId');//set text content
$element->text('new text content');//get text content
$element->text();//append new element
$newElem = $element->append('new-element');//move queryed element before
$newElem->before($xml->query('//book[3]')->item(0));//move queryed element after new one
$newElem->after($xml->query('//book[1]')->item(0));//get previous element
$newElem->prev();//get next element
$newElem->next();//get DOMElement object
$newElem->e();//get parent
$newElem->parent();//remove element
$newElem->remove();//save changes
$xml->save();//get PHP DOMDocument
$dd = $xml->dd();//get root element
$documentElement = $xml->de();/*
* XSLT Transformation
*/
$tpl = new \pgood\xml\template('tpl.xsl');
echo $tpl->transform($xml);/*
* XML from scratch
*/
$xml = new \pgood\xml\xml();
$xml->de('root-element-name');//using the xml::create method for element creation
$newElement1 = $xml->de()->append($xml->create(
'child-element-tag-name'
,array(
'attr-name-1' => 'value for first attribute'
,'attr-name-2' => 'value for second attribute'
)
,'element text content'
));//lazy element creation
$newElement2 = $xml->de()->append('child-element-tag-name');
$newElement2->{'element-id'} = 'id value';//catch up an existed DOMDocument
$xml2 = new \pgood\xml\xml($newElement2);//new XML from inline code
$xml = new \pgood\xml\xml('content');//parse HTML
$xml->loadHTML('Hello World!Hello World!
');//save
$xml->save('new-file-name.xml');/*
* XPath and namespace
* Let's count media:content elements in Yahoo RSS feed
*/
$xml = new \pgood\xml\xml('https://www.yahoo.com/news/rss/');
$xml->registerNameSpace('media','http://search.yahoo.com/mrss/');
$numElemets = $xml->evaluate('count(//media:content)');
```demo.xml
```xml
Gambardella, Matthew
XML Developer's Guide
Computer
44.95
2000-10-01
An in-depth look at creating applications with XML.
Ralls, Kim
Midnight Rain
Fantasy
5.95
2000-12-16
A former architect battles corporate zombies, an evil sorceress, and her own childhood to become queen of the world.
```