2010-02-12 71 views
4
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();  
     } 
} 

這是我的代碼。 (非常感謝這些人:Can someone help me with this JAVA SAXParser?爲什麼我無法在SAXParser中打開這個XML?

問題是,我總是進入IOException e。消息是這樣的:

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

我的XML文件是這樣的,這是一個字符串

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

爲什麼不能看我的XML字符串?

回答

14

您調用的parse方法需要一個URI來讀取XML文件。

你可能想要做的,而不是什麼是從StringReader這樣創建InputSource

InputSource source = new InputSource(new StringReader(thexml)); 
saxParser.parse(source, handler); 
3

SAXParser的parse方法需要文件名或URI作爲第一個參數,而不是讀入字符串的XML文件。

相關問題