Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java parse(InputStream)返回null_Java_Xml - Fatal编程技术网

Java parse(InputStream)返回null

Java parse(InputStream)返回null,java,xml,Java,Xml,我正在修复一个关于DocumentBuilder.parse的现有代码上的错误。我有以下代码: String theOutput; theOutput = response.encodeURL(prefix + "/include/sampleForConversion.jsp?" + request.getQueryString(); StreamSource xmlSource = new StreamSource(new URL(theOutput).openStream

我正在修复一个关于DocumentBuilder.parse的现有代码上的错误。我有以下代码:

 String theOutput;
    theOutput = response.encodeURL(prefix + "/include/sampleForConversion.jsp?" + request.getQueryString();
    StreamSource xmlSource = new StreamSource(new URL(theOutput).openStream(), "http://sampleApps.net/static/dataDef1.1.dtd");                                         
    Document xmlDoc = dBuilder.parse(xmlSource.getInputStream());
我不明白为什么xmlDoc的值为空,尽管我有输出和xmlSource变量的有效值。请帮忙


谢谢

流很有可能被正确解析,因为
xmlDoc.toString()。这并不表示DOM树是空的。请先检查文档是否有一些节点(子节点)

如果DOM真的是空的,那么我首先将输入流的内容打印到控制台(可能
xmlSource.getInputStream().toString()
已经返回了内容),以检查内容是否格式正确,再次检查dtd文件是否可访问(浏览器),最后,将XML文档和dtd转储到文件中,以检查XML内容是否有效


啊,等等,我以为第二个参数是DTD文件的URI,但字符串是xml文档的systemId(
public StreamSource(InputStream InputStream,string systemId)
)。这可能是一个问题-StreamSource类将使用此URI解析相对URI(如DTD)。

只是为了澄清:您是否有
(xmlDoc==null)=true
或者您是否得到了一个空文档(
[[文档:null]
)?解析方法应该返回一个文档或抛出一个异常,但决不返回
null
…您好,我得到[#document:null]
[#document:null]
并不意味着一个null文档,这只是
文档
写得很糟糕的
toString()
输出。@Andreas\D您在哪里找到这个“决不返回null”的行为记录?谢谢@魏世增,这是一个新闻报道。如果发生任何解析异常,它将抛出
SAXException
<代码>IOException
如果发生任何I/O错误;和
IllegalArgumentException
如果输入为
null
。即使这并没有穷尽所有的错误情况,在JDK中,
@returns
文档通常会提到
null
,如果它是一个可能的返回值。在这些情况下,此方法是否会返回null或抛出异常
DocumentBuilder.parse(InputStream)
感谢您告诉我:xmlDoc.toString()将始终为“[#document:null]”