如果属性名称具有以下内容,则XOM Parser Element.getAttributeValue()将返回null:

时间:2013-09-18 15:54:38

标签: parsing xom

我一直在一个大部分结束的项目中使用XOM解析器。解析器非常好,我发现它大多稳定。但是今天我正在使用名为“xml:lang”

的属性解析XML元素

getAttributeValue(“xml:lang”)返回null而不是“English”。我可以找到一个解决方法来使用getAttribute(int location)来获取值.getValue()

但是,使用方法getAttributeValue会更好,因为属性的位置会因其他元素而改变。

我不确定我做错了什么,或者库方法中有一个小错误。

1 个答案:

答案 0 :(得分:0)

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");