2013-09-11 3 views
10

Привет Я хотел бы знать, как мы можем преобразовать содержимое строки, которая находится в форме XML-тега, и мне нужно, чтобы преобразовать его в XMLStreamReaderПреобразовать содержимое строки в XMLStreamReader

+0

что XMLStreamReader? – Jayan

+0

Вы хотите обратить внимание на это _using_ an XMLStreamReader? http://docs.oracle.com/cd/E19159-01/819-3669/bnbex/index.html – DaveH

+0

@Jayan: Что нашел ваш поиск (или проверка Javadoc)? –

ответ

25

Вы можете использовать XMLInputFactory.createXMLStreamReader, проходя a StringReader, чтобы обернуть вашу строку.

String text = "<foo>This is some XML</foo>"; 
Reader reader = new StringReader(text); 
XMLInputFactory factory = XMLInputFactory.newInstance(); // Or newFactory() 
XMLStreamReader xmlReader = factory.createXMLStreamReader(reader); 
+0

Не забудьте закрыть читателей (reader.close() и xmlReader.close()). – grajsek

+1

@userrg: Нет необходимости делать это для 'StringReader' ... и, я думаю, для XMLStreamReader, который читается из' StringReader'. Не существует встроенных ручек для закрытия. –

3

Я предполагаю, что вы хотите прочитать содержимое XML из String через XMLStreamReader. Вы можете сделать это так:

public XMLStreamReader readXMLFromString(final String xmlContent) 
{ 
    final XMLInputFactory inputFactory = XMLInputFactory.newInstance(); 
    final StringReader reader = new StringReader(xmlContent); 
    return inputFactory.createXMLStreamReader(reader); 
} 
1
//Intialize XMLInputFactory 
XMLInputFactory factory = XMLInputFactory.newInstance(); 

//Reading from xml file and creating XMLStreamReader 
XMLStreamReader reader = inputFactory.createXMLStreamReader(new FileInputStream(
       file)); 
String currentElement = ""; 

//Reading all the data 
while(reader.hasNext()) { 
    int next = reader.next(); 
    if(next == XMLStreamReader.START_ELEMENT) 
     currentElement = reader.getLocalName(); 
    //System.out.println(currentElement); 
} 
Смежные вопросы