小弟的程序会收到如下一个XML文件,
<Lignes>
<NumeroPosteCommande>9</NumeroPosteCommande>
<TypeLigne>QT-F-REC</TypeLigne>
<ReferenceArticleVendeur>H_I&C_821066</ReferenceArticleVendeur>
</Lignes>有时候文件可能会缺少某个标签,结果如
<Lignes>
<NumeroPosteCommande>9</NumeroPosteCommande>
<TypeLigne>QT-F-REC</TypeLigne>
</Lignes>问题:我事先不知道会收到哪种XML文件,但我要处理Lignes下所有的LABEL,所以我想以判断<Lignes>的开始和结束</Lignes>来判断是否完成Lignes部分的处理。但是用什么方法知道<Lignes></Lignes>开始和结束呢?JDOM?求代码,不胜感激
<Lignes>
<NumeroPosteCommande>9</NumeroPosteCommande>
<TypeLigne>QT-F-REC</TypeLigne>
<ReferenceArticleVendeur>H_I&C_821066</ReferenceArticleVendeur>
</Lignes>有时候文件可能会缺少某个标签,结果如
<Lignes>
<NumeroPosteCommande>9</NumeroPosteCommande>
<TypeLigne>QT-F-REC</TypeLigne>
</Lignes>问题:我事先不知道会收到哪种XML文件,但我要处理Lignes下所有的LABEL,所以我想以判断<Lignes>的开始和结束</Lignes>来判断是否完成Lignes部分的处理。但是用什么方法知道<Lignes></Lignes>开始和结束呢?JDOM?求代码,不胜感激
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.List;public class Main {
public static void main(String[] args) {
String data = "<root><row><column name='username' length='6'>admin</column>"
+ "<column name='password' length='1'>p</column></row><row>"
+ "<column name='username' length='6'>j</column>"
+ "<column name='password' length='8'>q</column></row></root>"; SAXBuilder builder = new SAXBuilder();
Document document = builder.build(new ByteArrayInputStream(data.getBytes())); Element root = document.getRootElement(); List rows = root.getChildren("row");
for (int i = 0; i < rows.size(); i++) {
Element row = (Element) rows.get(i);
List columns = row.getChildren("column");
for (int j = 0; j < columns.size(); j++) {
Element column = (Element) columns.get(j);
String name = column.getAttribute("name").getValue();
String value = column.getText();
int length = column.getAttribute("length").getIntValue(); System.out.println("name = " + name);
System.out.println("value = " + value);
System.out.println("length = " + length);
}
}
}
}