Получение значений из атрибутов SAX, когда задействованы пространства имен - PullRequest
2 голосов
/ 26 января 2010

Я использую SAX для анализа XML. В методе startElement () моего обработчика я пытаюсь прочитать значение атрибута с именем xsi:type примерно так:

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

Однако, он всегда возвращает null. Это отлично работает для всего остального, поэтому я предполагаю, что это связано с префиксом пространства имен. Как я могу получить это значение?

Ответы [ 2 ]

3 голосов
/ 26 января 2010

Вероятно, это может помочь, попробуйте немного поиграть с этим. Это вернет имена и значение найденных атрибутов, которые могут быть полезны для поиска имени, используемого для запроса.

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

Взгляните также здесь и здесь проверьте функцию: getURI

1 голос
/ 26 января 2010

Попробуйте спросить у SAX, что он думает об атрибуте qName:

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