如何将InputStream转换为InputSource?

Igo*_*gor 5 java xml sax inputstream

所有,

我写了一个简单的SAX XML解析器.它工作,我用本地XML文件测试它.这是我的代码:

SAXParserFactory spf = SAXParserFactory.newInstance();
XMLParser xmlparser = null;
try
{
    SAXParser parser = spf.newSAXParser();
    XMLReader reader = parser.getXMLReader();
    xmlparser = new XMLParser();
    reader.setContentHandler( xmlparser );
    reader.parse( new InputSource( getResources().openRawResource( R.raw.categories ) ) );
Run Code Online (Sandbox Code Playgroud)

现在我需要从网站上读取这个XML文件.我正在尝试的代码是:

public InputStream getXMLFile()
{
    URL url = new URL("http://example.com/test.php?param=0");
    InputStream stream = url.openStream();
    Document doc = docBuilder.parse(stream);
}
reader.parse( new Communicator().getXMLFile() );
Run Code Online (Sandbox Code Playgroud)

我收到了编译错误

"方法解析(InputSource)不适用于参数(InputStream)".

我需要帮助搞清楚我需要什么.

谢谢.

Jon*_*eet 13

虽然我讨厌听起来很明显,你有没有理由不使用这个构造函数

InputSource source = new InputSource(stream);
Document doc = docBuilder.parse(source);
Run Code Online (Sandbox Code Playgroud)

请注意,这与您在第一部分代码中所做的非常相似.毕竟,还要openRawResource回来InputStream......