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.
Cheers,
Daniel
On 03/05/14 09:49, Alex Balashov wrote:
It's
definitely namespace-related, because when I manually hack out the
namespace, it works fine!
$var(x) = $rb;
$var(x) = $(var(x){re.subst,/xmlns=\".+\"//});
$xml(u=>doc) = $var(x);
xlog("L_INFO", "State:
$xml(u=>xpath:/dialog-info/dialog[1]/state/text())\n");
But I can't for the life of me figure out how to construct an
XPath expression that properly captures the
urn:ietf:params:xml:ns:dialog-info namespace.
--
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda