0
我知道Java stax解析器可以和InputStreams一起使用。但是,我需要手动将大块字符串推送到解析器而不是输入流。如何向Java stax解析器提供大块字符串而不是InputStreams?
会有可能吗?
亲切的问候,
我知道Java stax解析器可以和InputStreams一起使用。但是,我需要手动将大块字符串推送到解析器而不是输入流。如何向Java stax解析器提供大块字符串而不是InputStreams?
会有可能吗?
亲切的问候,
您可以使用ByteArrayInputStream
缠绕你的String
块字节。
快速例如
XMLInputFactory factory = XMLInputFactory.newFactory();
XMLStreamReader reader = factory.createXMLStreamReader(
new ByteArrayInputStream("<start></start>".getBytes("UTF-8"))
);
while (reader.hasNext()) {
int event = reader.next();
switch (event) {
case (XMLStreamConstants.START_ELEMENT): {
System.out.println(reader.getLocalName());
break;
}
}
}
输出
start
我需要不断地喂食弦乐。所以我需要只有一个xmlinputstream阅读器,当我有更多的字符串块时,我需要获取。 – adragomir
如果API不提供接受字符串包裹字符串输入流的方法:我如何把字符串转换成在java中的流吗?](http://stackoverflow.com/q/247161/637853) – Thomas
我需要不断地喂字符串。所以我需要只有一个xmlinputstream阅读器,当我有更多的字符串块时,我需要获取。 – adragomir
在这种情况下,提供您自己的流实现,根据需要在它的'read()'方法中获取新块。 – Thomas