On Fri, May 25, 2012 at 3:57 AM, Gary <listgj-phpgene...@yahoo.co.uk> wrote: > If I use simplexml_load_string to create an XML object with the > following XHTML > ,---- > | <?xml version="1.0"?> > | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" > | "http://www.w3.org/TR/ > | xhtml1/DTD/xhtml1-strict.dtd"> > | <html xmlns="http://www.w3.org/1999/xhtml"> > | <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > | /> > | <title>test title</title> > | </head> > | <body> > | <!-- comment --> > | </body> > | </html> > `---- > > I get this SimpleXMLElement back > ,---- > | object(SimpleXMLElement)#1 (2) { > | ["head"]=> > | object(SimpleXMLElement)#2 (1) { > | ["title"]=> > | string(10) "test title" > | } > | ["body"]=> > | object(SimpleXMLElement)#3 (1) { > | ["comment"]=> > | object(SimpleXMLElement)#4 (0) { > | } > | } > | } > `---- > > but I cannot seem to get anything out of an xpath expression, no matter > what I try. > > If, however, I remove the 'xmlns="http://www.w3.org/1999/xhtml"' in the > html element, it works fine. So yeah, I can just remove that text, > but... is there something wrong here, in my expectation or in the xpath > function? > > TIA. > > -- > Gary Please do NOT send me 'courtesy' replies off-list.
Gary, I am not sure what you have tried, but namespaces change everything in XPath compared to documents without them. This isn't exact, but XPath without namespaces is often simple such as: /html/head/title Once you add a namespace, though, the XPath becomes something like /*[namespace-uri()='http://www.w3.org/1999/xhtml' and local-name()='html']/*[namespace-uri()='http://www.w3.org/1999/xhtml' and local-name()='head']/*[namespace-uri()='http://www.w3.org/1999/xhtml' and local-name()='title'] (I'm not sure of the exact syntax since I don't have something open right now that I can test it in. However, I think SimpleXML has some features that make this easier. Take a look at this: http://www.php.net/manual/en/simplexmlelement.registerxpathnamespace.php Andrew -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php