人 以下是我试图解析的xml
<?xml version="1.0" encoding="UTF-8"?><Categories><category name="Banquet & Marriage Hall" id="1" image=""/><category name="Crematorium, Burial Ground" id="2" image=""/><category name="Educational Institution" id="3" image=""/><category name="Embassies & Consulates" id="4" image=""/><category name="Fire Station" id="5" image=""/><category name="Government Office" id="6" image=""/></Categories>
以下是我正在使用的解析器的代码
public byte parse(){
SAXParserFactory spf = null;
SAXParser sp = null;
InputStream inputStream = null;
try {
inputStream = new ByteArrayInputStream(data.getBytes());
spf = SAXParserFactory.newInstance();
if (spf != null) {
sp = spf.newSAXParser();
**sp.parse(inputStream, this);**
}
}
/*
* Exceptions need to be handled MalformedURLException
* ParserConfigurationException IOException SAXException
*/
catch (Exception e) {
System.out.println("Exception: " + e);
e.printStackTrace();
} finally {
try {
if (inputStream != null)
inputStream.close();
} catch (Exception e) {
}
}
if (categorieslist != null && categorieslist.size() > 0) {
// Log.d("Array List Size",""+tipsList.get(4).getTitle());
return 1;
} else {
return 0;
}
}
public ArrayList<Categories> getParserCategoriesList(){
return categorieslist;
}
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
if(localName.equalsIgnoreCase("Categories")){
if(localName.equalsIgnoreCase("category")){
categories = new Categories();
categorieslist.add(categories);
categories.setId(attributes.getValue("id"));
Log.d("ID",attributes.getValue("id"));
categories.setName(attributes.getValue("name"));
Log.d("NAME",attributes.getValue("name"));
/*categories.setImage(attributes.getValue("image"));
Log.d("image",attributes.getValue("image"));*/
}
}
sp.parse()是给我expatParser Exception的代码 我在之前的5 xml解析中使用了相同的逻辑,我没有得到这个错误。 我做错了什么或者是xml是错误的吗?
答案 0 :(得分:0)
我认为解析器在到达&符号(&amp;)时会抛出异常。您可以找到类似于您的问题here
答案 1 :(得分:0)
是的,之前的评论是正确的,解析器在达到&amp;时抛出异常或者任何特殊的角色,有两种选择。
一切顺利