Почему я не могу открыть этот XML в SAXParser? - PullRequest
4 голосов
/ 12 февраля 2010
public static void parseit(String thexml){
     SAXParserFactory factory = SAXParserFactory.newInstance();
     SAXParser saxParser;

    try {
        saxParser = factory.newSAXParser();
        DefaultHandler handler = new DefaultHandler() {
            public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {

            }
            public void endElement(String uri, String localName, String qName)throws SAXException {

            }           
            public void characters(char ch[], int start, int length) throws SAXException {

            }               
         };      
        saxParser.parse(thexml, handler);
        } catch (SAXException e) {
            e.printStackTrace();
        } catch (IOException e) {
            Log.e("e", "e", e);
            e.printStackTrace();
        }catch (ParserConfigurationException e) {
            e.printStackTrace();    
        }
}

Это мой код. (большое спасибо этим парням: Может ли кто-нибудь помочь мне с этим JAVA SAXParser? )

Проблема в том, что я всегда вхожу в IOException e . Сообщение таково:

java.io.IOException: Couldn't open....and then my XML file.

Это мой XML-файл, и это String :

<?xml version="1.0" encoding="UTF-8"?>
<result>
    <person>
        <first_name>Mike</first_name>
    </person>
</result>

Почему он не может прочитать мою строку XML?

Ответы [ 2 ]

14 голосов
/ 12 февраля 2010

Метод parse, который вы вызываете, ожидает чтения URI XML-файла.

Вместо этого вы можете создать InputSource из StringReader следующим образом:

InputSource source = new InputSource(new StringReader(thexml));
saxParser.parse(source, handler);
3 голосов
/ 12 февраля 2010

SAXParser parse метод ожидает имя файла или URI в качестве первого аргумента, а не XML-файл, прочитанный в строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...