80,337
社区成员
发帖
与我相关
我的任务
分享
<?xml version="1.0" encoding="UTF-8"?>
<dict num="219" id="219" name="219">
<key>good</key>
<ps>g?d</ps>
<pron>http://res.iciba.com/resource/amp3/oxford/0/28/a2/28a24294fed307cf7e65361b8da4f6e5.mp3</pron>
<ps>ɡ?d</ps>
<pron>http://res.iciba.com/resource/amp3/1/0/75/5f/755f85c2723bb39381c7379a604160d8.mp3</pron>
<pos>adj.</pos>
<acceptation>好的;优秀的;有益的;漂亮的,健全的;
</acceptation>
<pos>n.</pos>
<acceptation>好处,利益;善良;善行;好人;
</acceptation>
<pos>adv.</pos>
<acceptation>同well;
</acceptation>
<sent>
<orig>
Best is the superlative form of good and worst is the superlative form of bad.
</orig>
<trans>
“best”是“good”的最高级形式,“worst” 是“bad”的最高级形式.
</trans>
</sent>
<sent>
<orig>
Good has captured the essence of the runaway, but does not pursue its most disturbing consequences.
</orig>
<trans>
Good抓住了这场失控的本质, 但没有进一步追踪这个事件最让人担忧的后果.
</trans>
</sent>
<sent>
<orig>
The state of the stream is revealed by the bad, fail, eof, and good operations.
</orig>
<trans>
流的状态由bad 、 fail 、 eof 和good操作提示.
</trans>
</sent>
<sent>
<orig>
Good Christian, good parent, good child, good wife, good husband.
</orig>
<trans>
虔诚的基督徒, 慈爱的父母, 孝顺的儿女, 贤良的妻子, 尽职的丈夫.
</trans>
</sent>
<sent>
<orig>
Good habits nurture good characters; good characters mold good fates.
</orig>
<trans>
好习惯育成好品格, 好品格塑造好命运.
</trans>
</sent>
</dict>
package com.my.wordbar.bean;
import java.util.List;
public class JinshanEnglishToChineseBean {
private String query; //查询文本
private String enVoice; //英式发音
private String EnVoiceUrl; //英式发音地址
private String anVoice; //美式发音
private String anVoiceUrl; //美式发音地址
//因为发音为英、美两种,只要返回成功,一定会有两种发音。所以没有写成链表形式。
private List<MeanBean> meanList; //词性和解释列表
private List<Example> exampleList; //例句列表
private static class MeanBean{
private String type; //词性
private String mean; //解释
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getMean() {
return mean;
}
public void setMean(String mean) {
this.mean = mean;
}
}
private static class Example{
private String chinese; //中文
private String english; //英文
public String getChinese() {
return chinese;
}
public void setChinese(String chinese) {
this.chinese = chinese;
}
public String getEnglish() {
return english;
}
public void setEnglish(String english) {
this.english = english;
}
}
public String getQuery() {
return query;
}
public void setQuery(String query) {
this.query = query;
}
public String getEnVoice() {
return enVoice;
}
public void setEnVoice(String enVoice) {
this.enVoice = enVoice;
}
public String getEnVoiceUrl() {
return EnVoiceUrl;
}
public void setEnVoiceUrl(String enVoiceUrl) {
EnVoiceUrl = enVoiceUrl;
}
public String getAnVoice() {
return anVoice;
}
public void setAnVoice(String anVoice) {
this.anVoice = anVoice;
}
public String getAnVoiceUrl() {
return anVoiceUrl;
}
public void setAnVoiceUrl(String anVoiceUrl) {
this.anVoiceUrl = anVoiceUrl;
}
public List<MeanBean> getMeanList() {
return meanList;
}
public void setMeanList(List<MeanBean> meanList) {
this.meanList = meanList;
}
public List<Example> getExampleList() {
return exampleList;
}
public void setExampleList(List<Example> exampleList) {
this.exampleList = exampleList;
}
}
//使用pull方式解析XML文件
public void parseXMLWithPull(String result){
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParser = factory.newPullParser();
xmlPullParser.setInput(new StringReader(result));
int eventType = xmlPullParser.getEventType();
JinshanEnglishToChineseBean e2cBean = new JinshanEnglishToChineseBean();
while(eventType != XmlPullParser.END_DOCUMENT){
String nodeName = xmlPullParser.getName();
switch(eventType){
//开始解析
case XmlPullParser.START_TAG:{
if("key".equals(nodeName)){
e2cBean.setQuery(xmlPullParser.nextText());
}else if("ps".equals(nodeName)){
e2cBean.setEnVoice(xmlPullParser.nextText());
}else if("pron".equals(nodeName)){
e2cBean.setEnVoiceUrl(xmlPullParser.nextText());
}else if("ps".equals(nodeName)){
e2cBean.setAnVoice(xmlPullParser.nextText());
}else if("pron".equals(nodeName)){
e2cBean.setAnVoiceUrl(xmlPullParser.nextText());
}
//剩下的没写,解析出来的都是错的
break;
}
default:
break;
}
eventType = xmlPullParser.next();
}
TextView responseText = (TextView) findViewById(R.id.response);
responseText.setText(e2cBean.getQuery() + "---" + e2cBean.getEnVoice() + "---" + e2cBean.getEnVoiceUrl()
+ "---" + e2cBean.getAnVoice() + "---" + e2cBean.getAnVoiceUrl());
}catch(Exception e){
e.printStackTrace();
Log.d(TAG, "解析过程中出错!!!");
}
}
//使用pull方式解析XML文件
public void parseJinshanEnglishToChineseXMLWithPull(String result) {
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParser = factory.newPullParser();
xmlPullParser.setInput(new StringReader(result));
int eventType = xmlPullParser.getEventType();
StringBuilder queryText = new StringBuilder(); //查询文本
StringBuilder voiceText = new StringBuilder(); //发音和发音地址信息
StringBuilder meanText = new StringBuilder(); //基本释义信息
StringBuilder exampleText = new StringBuilder(); //例句信息
while (eventType != XmlPullParser.END_DOCUMENT) {
String nodeName = xmlPullParser.getName();
switch (eventType) {
//开始解析
case XmlPullParser.START_TAG: {
switch (nodeName) {
case "key":
queryText.append(xmlPullParser.nextText()).append("\n\n");
break;
case "ps":
voiceText.append(xmlPullParser.nextText()).append("\n");
break;
case "pron":
voiceText.append(xmlPullParser.nextText()).append("\n\n");
break;
case "pos":
meanText.append(xmlPullParser.nextText()).append(" ");
break;
case "acceptation":
meanText.append(xmlPullParser.nextText()).append("\n");
break;
case "orig":
exampleText.append(xmlPullParser.nextText());
break;
case "trans":
exampleText.append(xmlPullParser.nextText());
break;
}
eventType = xmlPullParser.nextTag();
break;
}
default:
eventType = xmlPullParser.next();
break;
}
}
TextView responseText = (TextView) findViewById(R.id.response);
responseText.setText("查询文本:" + queryText + "发音信息:\n" + voiceText
+ "基本释义:\n" + meanText + "相关例句:\n" + exampleText);
} catch (Exception e) {
e.printStackTrace();
Log.d(TAG, "解析过程中出错!!!");
}
}
//使用pull方式解析XML文件
public void parseJinshanEnglishToChineseXMLWithPull(String result) {
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParser = factory.newPullParser();
xmlPullParser.setInput(new StringReader(result));
int eventType = xmlPullParser.getEventType();
String queryText = ""; //查询文本
String voiceText = ""; //发音和发音地址信息
String meanText = ""; //基本释义信息
String exampleText = ""; //例句信息
while (eventType != XmlPullParser.END_DOCUMENT) {
String nodeName = xmlPullParser.getName();
switch (eventType) {
//开始解析
case XmlPullParser.START_TAG: {
if ("key".equals(nodeName)) {
queryText += xmlPullParser.nextText() + "\n\n";
} else if ("ps".equals(nodeName)) {
voiceText += xmlPullParser.nextText() +"\n";
} else if ("pron".equals(nodeName)) {
voiceText += xmlPullParser.nextText() +"\n\n";
} else if ("pos".equals(nodeName)) {
meanText += xmlPullParser.nextText() +" ";
} else if ("acceptation".equals(nodeName)) {
meanText += xmlPullParser.nextText() +"\n";
} else if ("orig".equals(nodeName)) {
exampleText += xmlPullParser.nextText();
}else if("trans".equals(nodeName)){
exampleText += xmlPullParser.nextText();
}
break;
}
default:
break;
}
eventType = xmlPullParser.next();
}
TextView responseText = (TextView) findViewById(R.id.response);
responseText.setText("查询文本:" + queryText + "发音信息:\n" + voiceText
+ "基本释义:\n" + meanText + "相关例句:\n" + exampleText);
} catch (Exception e) {
e.printStackTrace();
Log.d(TAG, "解析过程中出错!!!");
}
}
//使用pull方式解析XML文件
public void parseXMLWithPull(String result){
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xmlPullParser = factory.newPullParser();
xmlPullParser.setInput(new StringReader(result));
int eventType = xmlPullParser.getEventType();
JinshanEnglishToChineseQueryBean queryBean = new JinshanEnglishToChineseQueryBean();
JinshanEnglishToChineseVoiceBean voiceBean = new JinshanEnglishToChineseVoiceBean();
// JinshanEnglishToChineseVoiceBean voiceBeanTemp = new JinshanEnglishToChineseVoiceBean();
JinshanEnglishToChineseMeanBean meanBean = new JinshanEnglishToChineseMeanBean();
JinshanEnglishToChineseExampleBean exampleBean = new JinshanEnglishToChineseExampleBean();
List<JinshanEnglishToChineseVoiceBean> voiceBeanList = new ArrayList<>();
List<JinshanEnglishToChineseMeanBean> meanBeanList = new ArrayList<>();
List<JinshanEnglishToChineseExampleBean> exampleBeanList = new ArrayList<>();
while(eventType != XmlPullParser.END_DOCUMENT){
String nodeName = xmlPullParser.getName();
switch(eventType){
//开始解析
case XmlPullParser.START_TAG:{
if("key".equals(nodeName)){
queryBean.setQuery(xmlPullParser.nextText());
}else if("ps".equals(nodeName)){
voiceBean.setVoice(xmlPullParser.nextText());
}else if("pron".equals(nodeName)){
voiceBean.setVoiceUrl(xmlPullParser.nextText());
voiceBeanList.add(voiceBean);
//新建一个临时对象
}
break;
}
default:
break;
}
eventType = xmlPullParser.next();
}
TextView responseText = (TextView) findViewById(R.id.response);
responseText.setText(queryBean.getQuery() + "\n" + voiceBeanList.get(0).getVoice() + "\n" + voiceBeanList.get(0).getVoiceUrl()
+ "\n" + voiceBeanList.get(1).getVoice() + "\n" + voiceBeanList.get(1).getVoiceUrl());
}catch(Exception e){
e.printStackTrace();
Log.d(TAG, "解析过程中出错!!!");
}
}