私は SAX を使用して XML を解析しています。私のハンドラのstartElement()xsi:type
メソッドで、次のような名前の属性の値を読み取ろうとしています:
String type = attributes.getValue("xsi:type");
ただし、常に を返しますnull
。これは他のすべてでうまく機能するので、名前空間プレフィックスが原因であると想定しています。この値を取得するにはどうすればよいですか?
私は SAX を使用して XML を解析しています。私のハンドラのstartElement()xsi:type
メソッドで、次のような名前の属性の値を読み取ろうとしています:
String type = attributes.getValue("xsi:type");
ただし、常に を返しますnull
。これは他のすべてでうまく機能するので、名前空間プレフィックスが原因であると想定しています。この値を取得するにはどうすればよいですか?
おそらくこれは役立つでしょう、これで少し遊んでみてください。これにより、見つかった属性の名前と値が返されます。これは、クエリに使用する名前を見つけるのに役立ちます。
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)));
}
}
SAXに、属性のqNameが何であると考えているかを尋ねてみてください。
for (int i=0; i < attributes.getLength(); i++) {
String qName = attributes.getQName(i);
System.out.println("qName for position " + i + ": " + qName);
}