- var_dump: documentation ( source)
<?php
$xml = '<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ccts="urn:oasis:names:specification:ubl:schema:xsd:CoreComponentParameters-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2" xmlns:stat="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0" xmlns:udt="urn:un:unece:uncefact:data:draft:UnqualifiedDataTypesSchemaModule:2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</Invoice>';
$invoiceXml = new \DOMDocument();
$invoiceXml->loadXml($xml);
$invoiceXPath = new \DOMXPath($invoiceXml);
$invoiceXPath->registerNamespace('peehee', 'urn:oasis:names:specification:ubl:schema:xsd:Invoice-2');
$textNode = $invoiceXPath->query('//peehee:Invoice');
var_dump($textNode->length);