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?)
问题是,我总是进入 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字符串?
答案 0 :(得分:14)
您调用的parse
方法需要读取XML文件的URI。
您可能想要做的是从InputSource
创建一个StringReader
,如下所示:
InputSource source = new InputSource(new StringReader(thexml));
saxParser.parse(source, handler);
答案 1 :(得分:3)
SAXParser的parse方法需要将文件名或URI作为第一个参数,而不是读入字符串的XML文件。