LingosHook Android Client 1.1.0終于寫好了!主要更新如下:
,本來打算今晚寫好在線文檔的,但..怕是完成不了了...所以決定還是先Release,文檔明天再說!
1. 支持XML格式導入;
2. 支持單個數據導入;
3. 支持遠程(HTTP)方式導入;
4. 增加'Html界面點擊'配置.
在線文檔也更新了,這里查看; 有沒有感覺新的導入和輸入方式很強大啊..支持HTTP哦!!! 哇哈哈...
最后,
還是到這里下載!
簡短說下更新:點擊"導入"菜單,然后自己去試試先吧...
原來的在線文檔在這里,新支持的XML文件格式請先參考如下例子吧...抱歉啊..今天有點累,真的連續寫了好多天了...
新支持的XML文件格式的例子如下,請參考.
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<LingosHook Android Client>
<Version>1.0
</Version>
<DefaultDict>test
</DefaultDict>
<WordList>
<Item>
<Dict>dict
</Dict>
<Word>word
</Word>
<Symbol>wc'd
</Symbol>
<DataList>
<Item>
<Category>n.
</Category>
<Meaning>meaning
</Meaning>
</Item>
<Item>
<Category>v.
</Category>
<Meaning>meaning2
</Meaning>
</Item>
</DataList>
</Item>
<Item>
<Dict>dict2
</Dict>
<Word>word2
</Word>
<Symbol>wc'd2
</Symbol>
<DataList>
<Item>
<Category>n.
</Category>
<Meaning>中文啊
</Meaning>
</Item>
<Item>
<Category>v.
</Category>
<Meaning>測試啊
</Meaning>
</Item>
</DataList>
</Item>
</WordList>
</LingosHook Android Client>
有興趣的可以下面看看俺怎么用JAVA解析的xml的(調試文件,不是最終的)

importdata.java
private void importXml(final String file, boolean overwrite) {
// File ifile = new File(file);
// if(!ifile.exists()) {
// return;
// }
try {
//FileInputStream is = new FileInputStream(ifile);
InputStream is = this.getAssets().open(file);
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xp = factory.newPullParser();
xp.setInput(is, "UTF-8");
DataFormat.Data data = new DataFormat.Data();
String defDict = "Default Dictionary";
int type = xp.getEventType();
while(type != XmlPullParser.END_DOCUMENT) {
if(type == XmlPullParser.START_TAG) {
if(xp.getName().equals("DefaultDict")) {
defDict = xp.getText();
}
else if(xp.getName().equals("WordList")) {
type = xp.nextTag();
if(type == XmlPullParser.START_TAG) {
while(xp.getName().equals("Item")) {
getItem(xp, data);
checkData(data, defDict);
// type = xp.next();
type = xp.nextTag();
type = xp.nextTag();
}
}
}
}
type = xp.next();
}
is.close();
}
catch (XmlPullParserException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
private int checkData(Data data, String defDict) {
return 0;
}
private int getItem(XmlPullParser xp, DataFormat.Data data) {
try {
//Dict
int type = xp.nextTag();
if(xp.getName().equals("Dict")) {
type = xp.next();
data.dict = xp.getText();
type = xp.next();
}
//Word
type = xp.nextTag();
if(xp.getName().equals("Word")) {
type = xp.next();
data.word = xp.getText();
type = xp.next();
}
else {
return -1;
}
//Symbol
type = xp.nextTag();
if(xp.getName().equals("Symbol")) {
type = xp.next();
data.symbol = xp.getText();
type = xp.next();
}
//DataList
type = xp.nextTag();
if(xp.getName().equals("DataList")) {
type = xp.nextTag();
if(type == XmlPullParser.START_TAG) {
while(xp.getName().equals("Item")) {
getWordData(xp, data);
checkWordData(data);
//type = xp.next();
type = xp.nextTag();
type = xp.nextTag();
}
}
}
else {
return -1;
}
}
catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return 0;
}
private int checkWordData(Data data) {
return 0;
}
private int getWordData(XmlPullParser xp, Data data) {
try {
//Category
int type = xp.nextTag();
if(xp.getName().equals("Category")) {
type = xp.next();
data.category.add(xp.getText());
type = xp.next();
}
else {
return -1;
}
//Meaning
type = xp.nextTag();
if(xp.getName().equals("Meaning")) {
type = xp.next();
data.meaning.add(xp.getText());
type = xp.next();
}
else {
return -1;
}
}
catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return 0;
}
<---- 長舒一口氣的分割線 ---->
文檔總算寫完了,可以輕松下了..結果,發現兩個bug...唉,這兩天就fix,1.1.1馬上就不得不更新了...