我一直在一个大部分结束的项目中使用XOM解析器。解析器非常好,我发现它大多稳定。但是今天我正在使用名为“xml:lang”
的属性解析XML元素getAttributeValue(“xml:lang”)返回null而不是“English”。我可以找到一个解决方法来使用getAttribute(int location)来获取值.getValue()
但是,使用方法getAttributeValue会更好,因为属性的位置会因其他元素而改变。
我不确定我做错了什么,或者库方法中有一个小错误。
答案 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");