On 03/05/14 10:33, Alex Balashov wrote:
On 05/03/2014 04:31 AM, Daniel-Constantin Mierla wrote:
This kind usage of xmlns in an xml doc is a hack done by SIMPLE WG breaking XML standard, because any ns has to use a prefix for each corresponding name. If you search on google, you will fine some discussions on the web (iirc, Inaki was there as well) - libxml2 devs said they don't want to break the xml standard to handle this case, probably they didn't change the mind meanwhile.
Anyhow, set a prefix for the namespace via xml_ns parameter and then use it in xpath
modparam("xmlops", "xml_ns", "di=urn:ietf:params:xml:ns:dialog-info")
$xml(u=>xpath:/di:dialog-info/di:dialog[1]/di:state/text())
Hope i remembered correctly, anyhow it is somewhere in this direction. If not, search on mailing list archive, the situation popped up few times around.
Thanks Daniel. I was heading in this direction, too, before I got lazy and just hacked out the xmlns attribute with {re.subst}. :-)
Probably would be good to add a module parameter to do this change internally, like replacing 'xmlns' with 'xmlnx' - iirc, there is a copy if xml doc in a local buffer and by sticking to same size, there is no overall size change, so just one char replacement.
This could come handy when needing just to read. If one needs to update the xml doc, then the above could break things when generating the new xml.
Cheers, Daniel