1
假設我有XML文件是這樣的:安卓:解析XML並插入到SQLite數據庫
<?xml version="1.0"?>
<P>
<Content>
<id>1016576</id>
<date>20.08.2012</date>
<placeOfBirth>KUALA LUMPUR</placeOfBirth>
</Content>
<Content>
<id>1016620</id>
<date>20.08.2012</date>
<placeOfBirth>SINGAPORE</placeOfBirth>
</Content>
<Content>
<id>1020907</id>
<date>20.08.2012</date>
<placeOfBirth>SINGAPORE</placeOfBirth>
</Content>
</P>
我想分析的所有文本,並插入到已_id數據庫表,日期和placeOfBirth列。我試過這個:
Activity activity1 = this;
String str="";
Resources res = activity1.getResources();
XmlResourceParser xmlPharser = res.getXml(R.xml.fileXML);
String id,date,pob;
//database
final databaseHelper myDbHelper = new databaseHelper(this);
myDbHelper.open();
//insert into table while parsing xml
try {
xmlPharser.next();
int eventType = xmlPharser.getEventType();
String event = ""+eventType;
Log.d("Event", event);
while (eventType != XmlPullParser.END_DOCUMENT)
{
if(eventType == XmlPullParser.START_TAG)
{
if(xmlPharser.getName() == "id")
{
id=xmlPharser.getText();
}
else if (xmlPharser.getName() == "date")
{
date = xmlPharser.getText();
}
else if (xmlPharser.getName() == "placeOfBirth")
{
pob = xmlPharser.getText();
}
myDbHelper.insertData(id,date,pob);
myDbHelper.close();
}
eventType = xmlPharser.next();
}
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
它沒有得到任何錯誤LogCat顯示,但它沒有測試每個START_TAG的條件。
我該如何解決這個問題? 所有的答案將是appreciated..thanks
感謝你這麼多的回覆...它的工作原理井,但它爲什麼只插入3或4行,每行我運行的時間應用程序。它不會插入所有數據,直到到達xml文件的末尾。 –
正如我所說我沒有檢查XML的格式,所以問題可能在那裏。這段代碼假設將會有一個P標籤,然後在多個內容標籤內以及這些標籤的內部,這些標籤,日期和placeOfBirth;確保你有所有的標籤(打開和關閉),並且所有的元素都被正確的嵌套。然後,如果你需要它,你可以添加一些代碼來解析錯誤(或者至少讓你知道發生了什麼)。我只能使用你給我們的東西,而對於那個小測試場景,它正在工作...... – ZhDev
再次感謝,我剛剛發現,我的XML不是很好的形式....我會嘗試你的指令。 ...非常感謝您的好意 –