1

我正在使用 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>

但在第二个表“程序”中,我无法存储所有元素(标题、描述 ..)

这是空字符方法:

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

那么我怎样才能获得例如“desc”元素,因为我只获得要插入数据库的 4 个第一个参数!!!(频道,开始,停止,类别)在我的数据库!

4

0 回答 0