江湖救急:JAVA XML判定标签结束

liyingfc 2012-02-14 05:15:50
小弟的程序会收到如下一个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?求代码,不胜感激
...全文
90 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
java_augur 2012-02-15
  • 打赏
  • 举报
回复
import org.jdom.Document;
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);
}
}
}
}
安特矮油 2012-02-14
  • 打赏
  • 举报
回复
如果没有结束的话,会报错的。会告诉你xml解析错误。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧