一些節點,我需要在這樣格式化的XML文件中提取一些節點:提取從XML文件
<collection sentiment="negativo">
<comment>
<sentiment> ...</sentiment>
<chars>...</chars>
<words>...</words>
<text>blabla</text>
<lang>english</lang>
</comment>
現在假設有其他<comment>
元素系列,同樣的XML文件中有<lang>spanish</lang>
。 我需要創建兩個單獨的XML文件。第一個與具有孩子<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文件,其中LOTR爲<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 2014-10-07 15:49:44
好的,我會深入研究這一點。我還想要一些代碼示例:) 非常感謝!編輯:Xstrem只是將對象序列化爲XML,我已經有了一個XML。 – Leo91 2014-10-07 16:02:12