Cheers Rob,

But this is the problem, I don't know what the namespace/prefix is! ie "xi" and the following doesn't work:

$root->getAttributeNS('http://www.w3.org/2000/xmlns/', '*');

further xmlns is ?not? a prefix so this won't work either..
$root->lookupPrefix('http://www.w3.org/2000/xmlns/');

we need to assume that we don't know the document we're working on, thus we don't know:
a] if it has any namespaces defined
b] if any, what the namespaces are
c] if any, what the prefixes are.

And I still can't find any way of finding this out, it should be simple enough surely?

still help!?

Nathan

Rob wrote:
Hi Nathan,

You need to retrieve the attribute based on the xmlns namespace.

Nathan Rixham wrote:
Thanks Jessen, I'm using the DOM API (domdocument) in PHP 5 - and yes pull xmlns:xi="http://www.w3.org/2001/XInclude"; from the chapter or indeed any namespaces defined in the root node and store them in a variable.

If anybody could shed any light it'd be greatly appreciated.

$xml = '<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude";>
<a />
</chapter>';

$dom = new DOMDocument();
$dom->loadXML($xml);
$root = $dom->documentElement;
$attr = $root->getAttributeNS('http://www.w3.org/2000/xmlns/', 'xi');
var_dump($attr);

Rob


Nathan

Per Jessen wrote:
Nathan Rixham wrote:

but assuming the above file is:
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude";>
<a />
</chapter>

how would one retrieve xmlns:xi="http://www.w3.org/2001/XInclude";

When you say 'retrieve', what do you really mean?  You need to get the
namespace value into a PHP variable?
I would probably look at the namespace-uri() function in XSLT, but I
don't know if you're using XSLT?


/Per Jessen, Zürich

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to