有道单词本导出xml转换.
生活随笔
收集整理的這篇文章主要介紹了
有道单词本导出xml转换.
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
有道單詞本導(dǎo)出后生成的是xml, 不方便看, 于是需要解析一下.
xml解析都忘了, 順便學(xué)習(xí)一下.
用到兩個類 , 如下:
第一個:就是死的那幾步.
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
/**
* 有道單詞本單詞生成.
* @author lvxingang
*/
public class XmlParser {
public static void main(String[] args) {
// 初始化與解析
try {
SaxHandler handler = new SaxHandler();
SAXParserFactory saxparserfactory = SAXParserFactory.newInstance();
SAXParser saxparser = saxparserfactory.newSAXParser();
saxparser.parse(new File("youdao.xml"), handler);
} catch (Exception e) {
e.printStackTrace();
}
}
}
第二個類.是DefaultHandler類.
public class SaxHandler extends DefaultHandler {
// 當(dāng)前元素中的數(shù)據(jù)
private String currentData;
int i = 0;
// 取得元素數(shù)據(jù)
public void characters(char[] ch, int start, int length)
throws SAXException {
currentData = new String(ch, start, length);
}
// 在解析元素開始時調(diào)用
public void startElement(String uri, String localName, String name,
Attributes attributes) throws SAXException {
if(name.equalsIgnoreCase("word")){
System.out.print("單詞: ");
}else if(name.equalsIgnoreCase("trans")){
System.out.println("翻譯:");
}else if(name.equalsIgnoreCase("phonetic")){
System.out.print("音標(biāo): ");
}else if(name.equalsIgnoreCase("item")){
System.out.println();
System.out.println("第"+i+"個單詞.");
i++;
}
}
// 在解析元素結(jié)束時調(diào)用
public void endElement(String uri, String localName, String name)
throws SAXException {
if(name.equalsIgnoreCase("word")||name.equalsIgnoreCase("trans")||name.equalsIgnoreCase("phonetic"))
System.out.println(" " + this.currentData);
}
}
完成.
效果對比如下:
下一步再弄把它寫到一個文本中, 應(yīng)該很簡單的. IO也忘了................啊............
總結(jié)
以上是生活随笔為你收集整理的有道单词本导出xml转换.的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英语发音规则---T字母
- 下一篇: 网站登录密码忘记后,通过向手机发送验证码