使用SAX和Java我想解析XML字符串但得到此异常
[致命错误]:1:92:与元素类型“device”关联的属性“xsi:type”的前缀“xsi”未绑定。
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(false);
factory.setValidating(false);
SAXParser parser = factory.newSAXParser();
XMLReader xmlReader = parser.getXMLReader();
handler = new ConfigHandler();
xmlReader = XMLReaderFactory.createXMLReader();
// assign our handler
xmlReader.setContentHandler(handler);
// perform the synchronous parse
xmlReader.parse(new InputSource(new StringReader(xml)));
} catch (Exception e) {
e.printStackTrace();
}
这是xml
<device xsi:type="axl:XIPPhone" ctiid="182" uuid="{20a9f66a-fb1f-6981-5851-1474258054dc}">
<fullConfig>true</fullConfig>
<portalDefaultServer>serveraxd.lestry.com</portalDefaultServer>
<deviceProtocol>SOORTY</deviceProtocol>
..
..
</device>
在这种情况下,我无法更改XML内容。
答案 0 :(得分:3)
正如错误消息所示,您没有为xsi:前缀提供名称空间声明。添加
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
到您的顶级元素(<device>
元素)。