Android 如何从资产中解析XML,保留它并添加到ListVIew?
我被告知要解析XML文件。任务是从assets文件夹解析XML,并以某种方式将其放入ListView。此外,xml包含链接,当您单击特定的ListView项时,您应该从相应的链接中获取文件,您应该得到解析的CSV文件,该文件包含在链接中。这个解析的CSV必须存储在本地数据库中,但这完全是另一回事 以下是我的XML:Android 如何从资产中解析XML,保留它并添加到ListVIew?,android,xml,listview,Android,Xml,Listview,我被告知要解析XML文件。任务是从assets文件夹解析XML,并以某种方式将其放入ListView。此外,xml包含链接,当您单击特定的ListView项时,您应该从相应的链接中获取文件,您应该得到解析的CSV文件,该文件包含在链接中。这个解析的CSV必须存储在本地数据库中,但这完全是另一回事 以下是我的XML: <Table> <TableItem> <id>1</id> <title>bla
<Table>
<TableItem>
<id>1</id>
<title>bla-bla-bla</title>
<url>http://thelink</url>
<type>CSV</type>
</TableItem>
<TableItem>
<id>2</id>
<title>bla-bla-bla x2</title>
<url>thelink</url>
<type>CSV</type>
</TableItem>
<TableItem>
<id>3</id>
<title>bla-bla-bla</title>
<url>the link</url>
<type>CSV</type>
</TableItem>
.....
</Table>
这是处理程序:
public class XmlContentHandler extends DefaultHandler
{
List<TableItem> items = new ArrayList<TableItem>();
private boolean inTableItem = false;
private boolean inTitle = false;
private boolean inUrl = false;
private boolean inType = false;
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
if(localName.equals("TableItem"))
{
}
}
class TableItem{
String title;
String type;
String url;
private TableItem(String title, String type, String url)
{
this.title = title;
this.url = url;
this.type = type;
}
}
}
任何帮助和想法都将不胜感激 哪条线不起作用?你必须更具体一些。logcat跟你说了什么?您是否尝试过调试并逐步完成代码?请尝试并报告您的发现。@Stephanbraczyk在尝试XMLParser时,它一直告诉我:START_TAG{null}Table position:END_TAG,所以我没有关注一个解析器,而是尝试了SAXParser。问题是,我不知道如何用更深的标记解析这样的XML文件,以及如何将它们附加到ListView中
public class XmlContentHandler extends DefaultHandler
{
List<TableItem> items = new ArrayList<TableItem>();
private boolean inTableItem = false;
private boolean inTitle = false;
private boolean inUrl = false;
private boolean inType = false;
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
if(localName.equals("TableItem"))
{
}
}
class TableItem{
String title;
String type;
String url;
private TableItem(String title, String type, String url)
{
this.title = title;
this.url = url;
this.type = type;
}
}
}