当XML具有xsi:type属性时,Sax解析异常

时间:2014-01-07 12:51:19

标签: java xml sax

使用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内容。

1 个答案:

答案 0 :(得分:3)

正如错误消息所示,您没有为xsi:前缀提供名称空间声明。添加

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

到您的顶级元素(<device>元素)。

相关问题