如何使用大块字符串而不是InputStreams来提供Java stax解析器?

时间:2016-03-29 09:49:32

标签: java stax

我知道Java stax解析器适用于InputStreams。但是,我需要手动将字符串块推送到解析器而不是输入流。

有可能吗?

亲切的问候,

1 个答案:

答案 0 :(得分:0)

您可以围绕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