涉及名称空间时从SAX属性获取值

时间:2010-01-25 23:47:35

标签: java xml sax

我正在使用SAX解析一些XML。在我的处理程序的startElement()方法中,我试图用以下内容读取名为xsi:type的属性的值:

String type = attributes.getValue("xsi:type");

但是,它始终返回null。这适用于其他一切,所以我假设这是由于名称空间前缀。我怎样才能得到这个值?

2 个答案:

答案 0 :(得分:3)

这可能有所帮助,试着用这个来玩一点。这将返回找到的属性的名称和值,这对于查找用于查询的名称非常有用。

if (attributes.getLength() > 0) {
  for (int i = 0; i < attributes.getLength(); i++) {
    System.out.print  ("name: " + attributes.getQName(i)));
    System.out.println(" value: " + attributes.getValue(i)));  
  }
}

还要看一下herehere检查功能:getURI

答案 1 :(得分:1)

尝试向SAX询问它认为属性的qName是什么:

for (int i=0; i < attributes.getLength(); i++) {
    String qName = attributes.getQName(i);
    System.out.println("qName for position " + i + ":  " + qName);
}