2016-03-29 11 views
0

Java stax ayrıştırıcısının InputStreams ile çalıştığını biliyorum. Bununla birlikte, giriş dizgileri yerine elkitaplarını parçalayıcıya el ile göndermem gerekir.Java stax ayrıştırıcısını InputStreams ile değil, dizelerle mi besleyin?

Bu mümkün mü?

Saygılarımızla

+0

API dizeleri giriş akışları dizeleri sarmak kabul yöntemleri sağlamazsa: [Bir Dize dönüşür nasıl java'da bir Akış?] (http://stackoverflow.com/q/247161/637853) – Thomas

+0

Sürekli olarak dizeleri çevirmem gerekiyor. Bu yüzden sadece 1 xmlinputstream okuyucuya ihtiyacım var, ve daha çok parça dizime sahip olduğumda getirmem gerekiyor. – adragomir

+0

Bu durumda, gerektiğinde 'read()' yönteminde yeni parçalar getiren kendi akış uygulamanızı sağlayın. – Thomas

cevap

0

Sen String parçalar bayt etrafında ByteArrayInputStream kaydırma kullanabilirsiniz.

Hızlı örnek

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

Çıktı

start 
+0

Sürekli olarak dizili dizeleri beslemem gerekiyor. Bu yüzden sadece 1 xmlinputstream okuyucuya ihtiyacım var, ve daha fazla parça dizime sahipken almam gerek. – adragomir

İlgili konular