Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从资产中解析XML,保留它并添加到ListVIew?_Android_Xml_Listview - Fatal编程技术网

Android 如何从资产中解析XML,保留它并添加到ListVIew?

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

我被告知要解析XML文件。任务是从assets文件夹解析XML,并以某种方式将其放入ListView。此外,xml包含链接,当您单击特定的ListView项时,您应该从相应的链接中获取文件,您应该得到解析的CSV文件,该文件包含在链接中。这个解析的CSV必须存储在本地数据库中,但这完全是另一回事

以下是我的XML:

<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;
        }
    }
}