The xml package provides APIs to handle XML.
Most of the time, XML is used to hold data. In this case, a fully blown DOM api is too much overhead to work with the data. This is where the xml.Tree class comes in.
This example will print out a nicely formatted XML document:
usexml\{Tree, Node};
$t= newTree('customer');
$t->root()->setAttribute('id', '6100');
$t->addChild(newNode('name', 'Timm Übercoder'));
$t->addChild(newNode('email', 'uebercoder@example.com'));
echo$t->getSource(INDENT_DEFAULT);The DomXSLProcessor class uses LibXSLT and thus supports EXSLT features like user functions, callbacks, string functions, dynamic evaluation and more.
A simple example:
usexml\DomXSLProcessor;
usexml\TransformerException;
useutil\cmd\Console;
$proc= newDomXSLProcessor();
$proc->setXSLFile('test.xsl');
$proc->setXMLFile('test.xml');
try {
$proc->run();
} catch (TransformerException$e) {
// Handle
}
Console::writeLine($proc->output());usexml\XPath;
useutil\cmd\Console;
$xml= '<dialog id="file.open"> <caption>Open a file</caption> <buttons> <button name="ok"/> <button name="cancel"/> </buttons></dialog>';
Console::writeLine((newXPath($xml))->query('/dialog/buttons/button/@name')));
