0

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

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

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

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

4

1 回答 1

0

xml:lang属性位于命名空间中。

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

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

String lang = element.getAttributeValue("lang", "http://www.w3.org/XML/1998/namespace");
于 2013-10-24T16:20:34.110 回答