*/ /* Remember, fluidify() is an alias for FluidXml::load(). */ $string = $html->xml(); // XML string import. $fluid = fluidify($string); echo $fluid->xml(); echo "————————————————————————————————————————————————————————————————————————————————\n"; $dom = new DOMDocument(); $dom->loadXML($fluid->xml()); // DOMDocument import. $fluid = fluidify($dom); echo $fluid->xml(); echo "————————————————————————————————————————————————————————————————————————————————\n"; $simplexml = new SimpleXMLElement($fluid->xml()); // SimpleXMLElement import. $fluid = fluidify($simplexml); echo $fluid->xml(); echo "————————————————————————————————————————————————————————————————————————————————\n"; // XML file import. // $fluid = fluidify('path/to/file.xml'); /****************** * XPath Queries. * *******************/ /* * XPath queries can be absolute or relative to the context over they are executed. */ $eggs = $food->query('//egg'); $fruits = $food->query('//fruit[@price="expensive"]'); echo "We have {$eggs->length()} eggs and {$fruits->length()} expensive fruit.\n"; echo "————————————————————————————————————————————————————————————————————————————————\n"; $book->query('//chapter')->attr('lang', 'en')->query('..')->attr('lang', 'en')->query('../title')->attr('lang', 'en');
$actual = $alias->xml(); $expected = $xml->xml(); assert($actual === $expected, __($actual, $expected)); $options = ['root' => 'root', 'version' => '1.2', 'encoding' => 'UTF-16', 'stylesheet' => 'stylesheet.xsl']; $xml = new FluidXml($options); $alias = fluidxml($options); $actual = $alias->xml(); $expected = $xml->xml(); assert($actual === $expected, __($actual, $expected)); }); }); describe('fluidify', function () { it('should behave like FluidXml::load', function () { $doc = '<tag>content</tag>'; $xml = FluidXml::load($doc); $alias = fluidify($doc); $actual = $alias->xml(); $expected = $xml->xml(); assert($actual === $expected, __($actual, $expected)); }); }); describe('fluidns', function () { it('should behave like FluidNamespace::__construct', function () { $ns = new FluidNamespace('x', 'x.com'); $alias = fluidns('x', 'x.com'); $actual = $ns->id(); $expected = $alias->id(); assert($actual === $expected, __($actual, $expected)); $actual = $ns->uri(); $expected = $alias->uri(); assert($actual === $expected, __($actual, $expected));