Следующий код PHP автоматически определяет пространство имен по умолчанию, указанное в файле XML под псевдонимом «default». Нет необходимости обновлять все запросы xpath, чтобы включить префикс default:
Так что, если вы хотите читать XML-файлы, а не содержать определение NS по умолчанию, или же нет, и вы хотите запросить все элементы Something
, вы можете использовать следующий код:
$xml = simplexml_load_file($name);
$namespaces = $xml->getDocNamespaces();
if (isset($namespaces[''])) {
$defaultNamespaceUrl = $namespaces[''];
$xml->registerXPathNamespace('default', $defaultNamespaceUrl);
$nsprefix = 'default:';
} else {
$nsprefix = '';
}
$somethings = $xml->xpath('//'.$nsprefix.'Something');
echo count($somethings).' times found';