2

私は SAX を使用して XML を解析しています。私のハンドラのstartElement()xsi:typeメソッドで、次のような名前の属性の値を読み取ろうとしています:

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

ただし、常に を返しますnull。これは他のすべてでうまく機能するので、名前空間プレフィックスが原因であると想定しています。この値を取得するにはどうすればよいですか?

4

2 に答える 2

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

こちらもご覧になり、機能を確認してください。getURI

于 2010-01-26T00:04:37.077 に答える
1

SAXに、属性のqNameが何であると考えているかを尋ねてみてください。

for (int i=0; i < attributes.getLength(); i++) {
    String qName = attributes.getQName(i);
    System.out.println("qName for position " + i + ":  " + qName);
}
于 2010-01-26T00:07:24.993 に答える