2016-03-29 48 views
0

我知道Java stax解析器可以和InputStreams一起使用。但是,我需要手動將大塊字符串推送到解析器而不是輸入流。如何向Java stax解析器提供大塊字符串而不是InputStreams?

會有可能嗎?

親切的問候,

+0

如果API不提供接受字符串包裹字符串輸入流的方法:我如何把字符串轉換成在java中的流嗎?](http://stackoverflow.com/q/247161/637853) – Thomas

+0

我需要不斷地喂字符串。所以我需要只有一個xmlinputstream閱讀器,當我有更多的字符串塊時,我需要獲取。 – adragomir

+0

在這種情況下,提供您自己的流實現,根據需要在它的'read()'方法中獲取新塊。 – Thomas

回答

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 
+0

我需要不斷地餵食絃樂。所以我需要只有一個xmlinputstream閱讀器,當我有更多的字符串塊時,我需要獲取。 – adragomir