【问题标题】:XOM Parser Element.getAttributeValue() returns null if attribute name has :如果属性名称具有,XOM Parser Element.getAttributeValue() 将返回 null:
【发布时间】:2013-09-18 15:54:38
【问题描述】:

我一直在一个基本结束的项目中使用 XOM 解析器。解析器非常好,我发现它基本稳定。但是今天我正在解析一个带有名为“xml:lang”的属性的 XML 元素

getAttributeValue("xml:lang") 返回 null 而不是 "English"。我可以通过使用 getAttribute(int location).getValue()

找到解决方法来获取值

但是,最好使用 getAttributeValue 方法,因为其他元素的属性位置会发生变化。

我不确定是我做错了什么还是库方法中存在小错误。

【问题讨论】:

    标签: parsing xom


    【解决方案1】:

    xml:lang 属性位于 namespace 中。

    要获取命名空间中属性的值,请使用Element.getAttributeValue(String, String) 方法。第一个参数需要是属性的本地名称(冒号之后),在本例中为lang。第二个参数需要是命名空间的URI,通常是祖先元素中的defined。但是,xml 命名空间是内置的,并且始终具有命名空间 URI http://www.w3.org/XML/1998/namespace

    因此,像这样的一些代码应该做你想做的事(假设你有一个名为 element 的变量指向你的元素):

    String lang = element.getAttributeValue("lang", "http://www.w3.org/XML/1998/namespace");
    

    【讨论】:

      猜你喜欢
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-02
      相关资源
      最近更新 更多