【问题标题】:Erlang: Value of attribute 'xmlns' not extracted while parsing xml using xpathErlang:使用 xpath 解析 xml 时未提取属性“xmlns”的值
【发布时间】:2014-07-23 20:04:15
【问题描述】:

我正在尝试解析以下 xml:<<"<message xmlns=\"jabber:client\" to=\"test1@kushdev.ssqueal.org/20500423901404388005197218/Gajim\" type=\"chat\" id=\"66\"><body>as</body><x xmlns=\"jabber:x:event\"><composing /></x><thread>eJFMuziLDXZIdeWRvUCdjPfyIZJoucVE</thread></message>">>

要查找“xmlns”属性的值,我使用xmerl_xpath:string("//x/@xmlns", Root).xmerl_xpath:string("//message/@xmlns", Root). 在这两种情况下,都会返回一个空列表,尽管这种方法在其他属性的情况下可以正常工作。我知道 xmlns attr 的特殊状态,但是不应该像提取任何其他属性一样提取它的值吗?

我在这里做错了什么,有更好的方法吗?

【问题讨论】:

    标签: xml xpath erlang xml-namespaces


    【解决方案1】:

    在 XPath 数据模型中,命名空间是一种不同于属性的节点。您可以使用命名空间轴而不是属性轴来获取值,但在这种情况下,您可能真正想要的是文档根元素的命名空间 URI,它由 XPath 表达式 namespace-uri(/*) 传递。

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 1970-01-01
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多