2016-03-29 7 views
0

Ich weiß, Java Stax Parser arbeitet mit InputStreams. Allerdings müsste ich Blöcke von Zeichenfolgen manuell an den Parser anstelle von Inputstream drücken.Wie füttern Sie den Java Stax Parser mit Chunks von Strings und nicht mit InputStreams?

Wäre es möglich?

Mit freundlichen Grüßen

+0

Wenn die API nicht Methoden bietet, die Saiten wickeln die Saiten in Eingabeströme akzeptieren: [Wie schalte ich einen String in ein Stream in Java?] (http://stackoverflow.com/q/247161/637853) – Thomas

+0

Ich muss kontinuierlich Chucks von Strings füttern. Also muss ich nur 1 xmlinputstream Leser haben, und wenn ich mehr Stücke von Schnur habe, muss ich holen. – adragomir

+0

In diesem Fall stellen Sie Ihre eigene Stream-Implementierung zur Verfügung, die neue Blöcke in ihrer 'read()' Methode nach Bedarf abruft. – Thomas

Antwort

0

können Sie verwenden, um eine ByteArrayInputStream umschlingenden Ihre String Brocken Bytes.

Schnell Beispiel

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; 
    } 
    } 
} 

Ausgabe

start 
+0

Ich muss kontinuierlich Chucks von Saiten füttern. Also muss ich nur 1 xmlinputstream Leser haben, und wenn ich mehr Stücke von Schnur habe, muss ich holen. – adragomir

Verwandte Themen