#27709 [Opn->Bgs]: SimpleXML xpath function doesn't like default namespaces
| From: | rrichards@php.net | Date: | Fri, 26 Mar 2004 13:09:56 +0000 |
| Subject: | #27709 [Opn->Bgs]: SimpleXML xpath function doesn't like default namespaces | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-56867@lists.php.net to get a copy of this message | ||
ID: 27709
Updated by: rrichards@php.net
Reported By: fjortiz at comunet dot es
-Status: Open
+Status: Bogus
Bug Type: SimpleXML related
Operating System: Windows 2000 Server
PHP Version: 5.0.0RC1
New Comment:
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
This is an XPath limitation.
You need to use an expression like //*[local-name() = 'a'] or dont use
default namespaces.
Previous Comments:
------------------------------------------------------------------------
[2004-03-26 04:51:30] fjortiz at comunet dot es
Description:
------------
Hi,
this example works with SimpleXML xpath:
$string = <<<XML
<?xml version="1.0" encoding ="UTF-8" ?>
<a xmlns:ns="urn:1">
<b>
<c>text</c>
<c>stuff</c>
</b>
<d>
<c>code</c>
</d>
</a>
XML;
$xml = simplexml_load_string($string);
$res = $xml->xpath('//a'); // returns array(1)
But if we don't use a namespace prefix (default namespace), xpath,
returns an empty array, array(0), for any xpath search:
$string = <<<XML
<?xml version="1.0" encoding ="UTF-8" ?>
<a xmlns="urn:1">
<b>
<c>text</c>
<c>stuff</c>
</b>
<d>
<c>code</c>
</d>
</a>
XML;
$xml = simplexml_load_string($string);
$res = $xml->xpath('//a'); // returns array(0)
This is a simple example, I found the problem with a bigger XML file (a
WSDL file). This WSDL has 5 namespaces defined, and no problem at all
with SimpleXML, as long as you don't define a default namespace...
Thanks for your attention
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=27709&edit=1