嗨我想解析一个本地xml文件(它有数据库表信息)并最终将信息存储在SQLite数据库中。它存储在我在res下创建的原始文件夹中。解析Android本地xml并存储在SQLite数据库
但我不知道如何打开它并使用SAX解析器进行解析。通过不同的教程,但没有工作。
如果有人可以指导我的伟大。谢谢
嗨我想解析一个本地xml文件(它有数据库表信息)并最终将信息存储在SQLite数据库中。它存储在我在res下创建的原始文件夹中。解析Android本地xml并存储在SQLite数据库
但我不知道如何打开它并使用SAX解析器进行解析。通过不同的教程,但没有工作。
如果有人可以指导我的伟大。谢谢
您可以使用openRawResource(getResources().openRawResource(R.id.{resourcename})
)获得InputStream。然后,您可以像传统文件那样将该InputStream传递给SAX解析器。
有关更多详细信息,请参阅http://stackoverflow.com/questions/4991839/android-parsing-large-files-using-sax-parser:它实际上看起来像您想要的(它也描述了您可能必须处理的一些尺寸限制用)。那个工作的Ya ... – Femi
。 openRawResource(getResources()。openRawResource(R.id. {resourcename}))。有没有一种简单的方法将该输入流转换为String ????? – JibW
那么,http://stackoverflow.com/questions/309424/in-java-how-do-a-read-convert-an-inputstream-in-to-a-string有一些选项,你可能要考虑。 – Femi
我创建XML数据在Android 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覆盖会处理这些元素并将它们添加到你的数据库中。
你正在试图解析的文件在哪里? –
它存储在一个名为raw的文件夹中。原始文件夹位于我的eclipse android项目中的res文件夹内 – JibW
请参阅http://stackoverflow.com/questions/6079637/xmlpullparser-how-to-attain-res-raw-xml-xmlfilename。 – Femi
我需要使用SAX解析器。我认为它高效。你有任何想法如何打开本地XML文件,并解析它与SAX解析器。之后,我需要将信息存储在SQLite数据库中。有没有可能或者其他简单而有效的方法? – JibW