Я хотел бы использовать файл XML в качестве словаря для проекта НЛП, над которым я работаю. В настоящее время у меня есть класс «Слова», который является вектором объектов «Слово».
public class Words {
private Vector<Word> vect;
public Words(){
vect = new Vector<Word>();
}
public void add(Word w){
vect.add(w);
}
Класс "Word" выглядит примерно так:
public class Word {
private String name;
private String partOfSpeech;
private String category;
private String definition;
}
Мне удалось записать вектор "Words" в XML с помощью XStream, используя этот код:
public class Writer {
public static void main(String[] args) {
XStream xstream = new XStream();
xstream.alias("words", Words.class);
xstream.alias("word", Word.class);
xstream.addImplicitCollection(Words.class, "vect");
Words vect = new Words();
vect.add(new Word("dog", "noun", "animal", "a domesticated canid, Canis familiaris, bred in many varieties"));
vect.add(new Word("cat", "noun", "animal", "a small domesticated carnivore, Felis domestica or F. catus, bred in a number of varieties"));
try {
FileOutputStream fs = new FileOutputStream("c:/dictionary.xml");
xstream.toXML(vect, fs);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
}
}
Кажется, что все работает нормально и дает мне следующий XML-файл:
<words>
<word>
<name>dog</name>
<partOfSpeech>noun</partOfSpeech>
<category>animal</category>
<definition>a domesticated canid, Canis familiaris, bred in many varieties</definition>
</word>
<word>
<name>cat</name>
<partOfSpeech>noun</partOfSpeech>
<category>animail</category>
<definition>a small domesticated carnivore, Felis domestica or F. catus, bred in a number of varieties</definition>
</word>
</words>
Мой вопрос: как мне использовать XStream для чтения этого XML-файла обратно в вектор объектов?