使用Javascript

时间:2017-06-09 14:14:11

标签: javascript xml

我正在努力建立一本日语学习指南。我从here下载了一个巨大的日语英语词典文件。这是大约3,000,000行代码。

以下是文件中的示例条目:

<JMdict>
    <entry>
        <ent_seq>1000110</ent_seq>
        <k_ele>
            <keb>CDプレーヤー</keb>
            <ke_pri>spec1</ke_pri>
        </k_ele>
        <k_ele>
            <keb>CDプレイヤー</keb>
        </k_ele>
        <r_ele>
            <reb>シーディープレーヤー</reb>
            <re_restr>CDプレーヤー</re_restr>
            <re_pri>spec1</re_pri>
        </r_ele>
        <r_ele>
            <reb>シーディープレイヤー</reb>
            <re_restr>CDプレイヤー</re_restr>
        </r_ele>
        <sense>
            <pos>&n;</pos>
            <gloss>CD player</gloss>
        </sense>
    </entry>
</JMdict>

我不太熟悉如何使用XML。我希望能够搜索文件并返回条目信息。 <keb><reb>将成为日语术语,<gloss>内部是英语含义。有多个<keb><reb>,因为有多种方式可以说出并拼写相同的单词。如果有人可以告诉我一个简单的方法来搜索输入框中的英文单词并在<entry>中使用正则表达式搜索<gloss>中的匹配项,这对我来说就足以让项目滚动。我只想输入一个英文单词并返回日语单词。

1 个答案:

答案 0 :(得分:0)

var xml = document.createElement("div");
xml.innerHTML = "<JMdict><entry><ent_seq>1000110</ent_seq><k_ele><keb>CDプレーヤー</keb><ke_pri>spec1</ke_pri></k_ele><k_ele><keb>CDプレイヤー</keb></k_ele><r_ele><reb>シーディープレーヤー</reb><re_restr>CDプレーヤー</re_restr><re_pri>spec1</re_pri></r_ele><r_ele><reb>シーディープレイヤー</reb><re_restr>CDプレイヤー</re_restr></r_ele><sense><pos>&n;</pos><gloss>CD player</gloss></sense></entry></JMdict>"

//xml.innerHTML = url xml

xml.querySelector("keb").innerText // will give value in first keb
xml.querySelector("reb").innerText // will give you first reb
xml.querySelector("gloss").innerText // will give you gloss

use querySelectorAll("keb")[0/1] to access specific keb.
Or write any query you want like
xml.querySelector("k_ele keb") // keb inside k_ele
xml.querySelector("r_ele re_pri").innerText // returns "spec1"