解析Android Local xml并存储在SQLite DB中

时间:2011-07-11 16:45:20

标签: android xml-parsing

您好我正在尝试解析本地xml文件(具有数据库表信息)并最终将信息存储在SQLite DB中。它存储在我在res下创建的原始文件夹中。

但我不知道如何使用SAX解析器打开它和Parse。通过不同的教程,但没有工作。

如果有人可以指导我它的伟大。谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用openRawResourcegetResources().openRawResource(R.id.{resourcename}))获取InputStream。然后,您可以将该InputStream传递给SAX解析器,就像它是常规文件一样。

答案 1 :(得分:0)

我在Android上为XML数据创建了一个XML解析器,它位于字节数组中,如下所示:

创建一个扩展DefaultHandler的类。

在此类中创建类似于以下内容的方法:

public void ParseXMLByteArray(byte[] xmlData, int len)
{
    SAXParserFactory spf = SAXParserFactory.newInstance();
    try
    {
        // Create a SAX parser
        SAXParser mySP = spf.newSAXParser();
        // Get an XML reader from the parser
        XMLReader myXR = mySP.getXMLReader();
        // Tell the reader this class will supply content callbacks
        myXR.setContentHandler(this);
        // Kick off the parse operation
        // You will get ContentHandler callbacks via DefaultHandler overrides 
        myXR.parse(new InputSource(new ByteArrayInputStream(xmlData, 0, len)));
    }
    catch ( Exception excp )
    {
        // Handle exceptions
    }
}

您当然希望将输入源作为本地文件。 DefaultHandler覆盖将处理元素并将它们添加到数据库中。