如何从复杂的xml中设置sqlite数据库?

时间:2011-05-18 00:35:54

标签: android xml sqlite

我正在构建一个Android应用程序,它将使用我使用xml数据创建的sqlite数据库。

之前我已经使用更简单的xml文档完成了这个,并且这个方法让我有点难过。

该应用程序是一个动词结合应用程序,这里是其中一个动词的例子:

    <word>
        <key>aparcar</key>
        <definition>to deposit (arms); to park</definition>
        <conjugation>

<tense type="Infinitivo">aparcar</tense>
<tense type="Participio">aparcado</tense>
<tense type="Gerundio">aparcando</tense>
<tense type="Presente">
    <person type="first_person">aparco</person>
    <person type="second_person">aparcas</person>
    <person type="third_person">aparca</person>
    <person type="first_person_plural">aparcamos</person>
    <person type="second_person_plural">aparcáis</person>
    <person type="third_person_plural">aparcan</person>
</tense>
<tense type="Imperfecto">
    <person type="first_person">aparcaba</person>
    <person type="second_person">aparcabas</person>
    <person type="third_person">aparcaba</person>
    <person type="first_person_plural">aparcábamos</person>
    <person type="second_person_plural">aparcabais</person>
    <person type="third_person_plural">aparcaban</person>
</tense>
<tense type="Pretérito">
    <person type="first_person">aparqué</person>
    <person type="second_person">aparcaste</person>
    <person type="third_person">aparcó</person>
    <person type="first_person_plural">aparcamos</person>
    <person type="second_person_plural">aparcasteis</person>
    <person type="third_person_plural">aparcaron</person>
</tense>
<tense type="Futuro">
    <person type="first_person">aparcaré</person>
    <person type="second_person">aparcarás</person>
    <person type="third_person">aparcará</person>
    <person type="first_person_plural">aparcaremos</person>
    <person type="second_person_plural">aparcaréis</person>
    <person type="third_person_plural">aparcarán</person>
</tense>
<tense type="Subjunctivo">
    <person type="first_person">aparque</person>
    <person type="second_person">aparques</person>
    <person type="third_person">aparque</person>
    <person type="first_person_plural">aparquemos</person>
    <person type="second_person_plural">aparquéis</person>
    <person type="third_person_plural">aparquen</person>
</tense>
<tense type="Subjunctivo_Pretérito">
    <person type="first_person">aparcara</person>
    <person type="second_person">aparcaras</person>
    <person type="third_person">aparcara</person>
    <person type="first_person_plural">aparcáramos</person>
    <person type="second_person_plural">aparcarais</person>
    <person type="third_person_plural">aparcaran</person>
</tense>
<tense type="Subjunctivo_Pretérito">
    <person type="first_person">aparcare</person>
    <person type="second_person">aparcares</person>
    <person type="third_person">aparcare</person>
    <person type="first_person_plural">aparcáremos</person>
    <person type="second_person_plural">aparcareis</person>
    <person type="third_person_plural">aparcaren</person>
</tense>
<tense type="Condicional">
    <person type="first_person">aparcaría</person>
    <person type="second_person">aparcarías</person>
    <person type="third_person">aparcaría</person>
    <person type="first_person_plural">aparcaríamos</person>
    <person type="second_person_plural">aparcaríais</person>
    <person type="third_person_plural">aparcarían</person>
</tense>
<tense type="Imperativo">
    <person type="first_person"></person>
    <person type="second_person">aparca</person>
    <person type="third_person">aparque</person>
    <person type="first_person_plural">aparquemos</person>
    <person type="second_person_plural">aparcad</person>
    <person type="third_person_plural">aparquen</person>
</tense>

        

将密钥和定义解析到数据库中是微不足道的。当我到达时态时,我不确定该怎么做。我的第一个策略是做我过去做过的xml解析 - 编写一个扩展DefaultHandler并使用逻辑的类,如:

public void startElement(String namespaceURI, String localName,
        String qName, Attributes atts) throws SAXException {
    if (localName.equals("word")) {
        this.wordTag = true;
            }
}

public void characters(char ch[], int start, int length) {
    if (this.wordTag) {
        verb.setWord(new String(ch, start, length));
    }
}

如果只有几个元素,这是不错的,但是使用布尔标志等具有许多不同属性的元素变得非常麻烦。我觉得必须有更好的方法。

我有firefox sqlite插件。但是在导入它时似乎没有正确解析xml。

所以 - 我的问题的第一部分是将这些信息导入sqlite数据库的最佳方法是什么?

第二部分 - 为每个动词结合使用单独的列是设置数据库的最佳方法吗?这种方法最终导致约50列,这似乎过多。

感谢。

0 个答案:

没有答案