Androidでsaxパーサーを使用してxmlファイルを解析し、要素と属性の値を2つのテーブル(チャネル、プログラム)で構成されるsqliteデータベースに保存しています
これはxmlファイルです:
<channel id="C9.telerama.fr">
<display-name>W9</display-name>
<icon src="http://localhost/logo9.gif"/>
</channel>
<programme start="20121102001000 +0100" stop="20121102010000 +0100" showview="5349005" channel="C1.telerama.fr">
<title>New York, section criminelle</title>
<sub-title>Les cartes en main</sub-title>
<desc lang="fr">
Saison : 6 - Episode : 17/22 - Après la condamnation d'un violeur par le tribunal, Jacob, le fils du juge Fenner, est assassiné. Mike Logan mène l'enquête avec Megan Wheeler et soupçonne un homme qu'il avait arrêté et que le juge avait condamné. Les deux inspecteurs trouvent bientôt une nouvelle piste.
</desc>
<credits>
<director>Tom Di Cillo, Tom DiCillo</director>
<actor>Chris Noth (Mike Logan)</actor>
<actor>William Hill (Bobby Grey)</actor>
</credits>
<date>2007</date>
<category lang="fr">série</category>
<category lang="fr">série policière</category>
<icon src="http://guidetv-iphone.telerama.fr/verytv/procedures/images/2012-11-02_1_00:10.jpg"/>
<episode-num system="xmltv_ns">5.16/22.</episode-num>
<video>
<aspect>16:9</aspect>
<quality>HDTV</quality>
</video>
<premiere/>
<subtitles type="teletext">
<language>fr</language>
</subtitles>
<rating system="CSA">
<value>-10</value>
<icon src="http://www.csa.fr/picts/visuels/picto_cat2.gif"/>
</rating>
</programme>
しかし、2番目のテーブル「プログラム」では、すべての要素(タイトル、説明..)を保存できません
これは空文字メソッドです:
public void characters(char[] ch, int start, int length)
throws SAXException{
if (inCat)
{
myBdd.insertprogram(id, startp, stopp, new String(ch, start, length), buffer1.toString())
;
System.out.println("ALEEEEEERRRRRRRRRRRRRRTTTTTTTTTTT");
System.out.println(buffer1.toString());
//myBdd.insertprogram(id, startp, stopp, buffer1.toString(),"");
inCat = false;
}
startelement メソッド:
public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException
{
Log.i("qname", "<"+qName.toString()+">");
if(qName.equals("tv"))
{
Log.i("Dans TV", "tv");
}
else if(qName.equals("channel"))
{
channelId = attributes.getValue("id");
Log.i("id",id);
//myBdd.insertchannel(channelId,title);
inPersonne = true;
}
else if(qName.equals("display-name"))
{
buffer = new StringBuffer();
inNom = true;
}
else if(qName.equals("programme"))
{
id = attributes.getValue("channel");
startp = attributes.getValue("start");
stopp = attributes.getValue("stop");
inprog = true;
}
else if(qName.equals("category"))
{
inCat = true;
}
else if(qName.equals("desc"))
{
buffer1 = new StringBuffer();
inDesc = true;
}
データベースに挿入する最初の4つの引数しか取得できないため、たとえば「desc」要素を取得するにはどうすればよいですか!!! (チャネル、開始、停止、カテゴリ) データベースに !!