мне нужно извлечь некоторые узлы из файла XML, отформатированный таким образом:Извлечение некоторых узлов из XML файлов
<collection sentiment="negativo">
<comment>
<sentiment> ...</sentiment>
<chars>...</chars>
<words>...</words>
<text>blabla</text>
<lang>english</lang>
</comment>
Теперь предположим, что существуют и другие <comment>
Elemente, которые имеют <lang>spanish</lang>
в одном файле XML. Мне нужно создать два отдельных файла XML. Первые один со всем NODES имея ребенок <lang>english</lang>
(давайте называть его eng.xml), а второй, имеющий <lang>spanish</lang>
(назовем его spa.xml)
Вот мой JAVA код:
public void getEnglishRows() throws IOException{
OutputStreamWriter f = new OutputStreamWriter(new FileOutputStream("C:/eclipse/neg_eng.xml"));
BufferedWriter buff;
NodeList current_row = doc.getElementsByTagName("comment"); //Mette in una lista tutti i nodi row (che contengono a loro volta degli elementi)
NodeList tmp;
Node nodo = null;
buff = new BufferedWriter(f);
for(int i=0;i< current_row.getLength();i++){
tmp = current_row.item(i).getChildNodes();
for(int k=0;k<tmp.getLength();k++){
nodo = tmp.item(k);
if("english".equals(nodo.getTextContent()))
System.out.println("IF ENGLISH");
buff.write(current_row.item(i).getNodeValue());
}
}
buff.close();
}
Я не знаю, ясно ли я, надеюсь.
Итак, у меня есть один файл Xml с количеством <comment></comment>
. Я должен извлечь из этого ВСЕ <comment></comment>
, которые имеют <lang>english</lang>
и записать узел (с его дочерними элементами) в другой файл XML. Такое же поведение для <lang>spanish</lang>
.
Выход eng.xml является:
<comment>
<sentiment> ...</sentiment>
<chars>...</chars>
<words>...</words>
<text>blabla</text>
<lang>english</lang>
</comment>
Выход spa.xml является:
<comment>
<sentiment> ...</sentiment>
<chars>...</chars>
<words>...</words>
<text>blabla</text>
<lang>spanish</lang>
</comment>
Я надеюсь, что я ясно. Моя проблема в том, что я могу извлечь текст всех узлов, но он не поддерживает XML-теги!
Пожалуйста, помогите!
смотреть в jaxb или xstream – jgr208
Хорошо, я буду копаться в этом. Я хотел бы также привести пример кода :) Большое спасибо! EDIT: Xstrem просто сериализует объект в XML, у меня уже есть XML. – Leo91