0

我正在尝试使用以 URI 作为参数DocumentBuilder的方法解析 xml。parse为此,我创建了一个String表示 URI 的对象,然后调用将对象作为参数parse传递的方法。String

parse方法调用工作正常,返回一个新的 DOM 对象。但是,当我尝试打印返回的 DOM 对象时,它会说:

org.xml.sax.SAXParseException:文档中根元素之后的标记必须格式正确。解析xml的代码片段如下所示:

String sURL="http://host:port/myapp/myfile.xml";   
DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();      
doc = dBuilder.parse(sURL);

但是,当 URL 不存在时,parse 方法仍然返回

org.xml.sax.SAXParseException:文档中根元素之后的标记必须格式正确。

xml是一个普通的xml,如下图所示:

    <?xml version="1.0" encoding="utf-8"?>
<Data>
    <ColorMessages>
        <Message Color="RED">Warning: The batch color level is red. Please check it out!</Message>
        <Message Color="YELLOW">Alert: This batch color level is yellow. Please stay on alert!</Message>
        <Message Color="GREEN">Cool: The batch color level is green. Nice!</Message>
        <Message Color="BLUE">Excellent: The batch color level is blue. Great job!</Message>
    </ColorMessages>
</Data>

parse关于在方法调用期间如何识别不存在的 URL 有什么想法吗?

谢谢。

4

1 回答 1

2

就个人而言,我更喜欢设置网络连接,或者自己打开文件并将流传递给 xml 子系统。它的工作量更大,但你可以控制他的情况。即,您不依赖于其他人认为在那种情况下是个好主意。

执行此操作时,您还需要确保关闭流。下面的 XML 位不会假设这是您想要的。

于 2011-12-15T05:39:20.013 回答