Dom4j拼装解析XML
  YX6XGF1y07ua 2023年11月02日 60 0


 

项目中实例:

拼装XML:

 

Element root = DocumentHelper.createElement("root");
Element set = null;
String aimSql = "SELECT " + queryField + " FROM t_jgdm WHERE 1=1 " + queryCondition;
pstmt = conn.prepareStatement(aimSql);
System.out.println("【代码共享SQL:】" + aimSql);
rs = pstmt.executeQuery();
while (rs.next()) {
   set = root.addElement("set");
   String[] queryFieldArr = queryField.split(",");
   for (int i = 0; i < queryFieldArr.length; i++) {
       set.addAttribute(queryFieldArr[i], rs.getString(queryFieldArr[i].toUpperCase()));
   }
}
res = root.asXML();

 


解析XML格式的文本:

Element document = DocumentHelper.parseText(transMessage);
Element root = document.getRootElement();
Iterator tickets = root.element("body").element("ticketNotify").elementIterator();
//Iterator tickets = root.elementIterator();获取root下所有元素集合
//获取ticketNotify节点下所有的ticket节点的配置属性
while (tickets.hasNext()) {
   Element ticket = (Element) tickets.next();
   System.out.println("节点属性值:" + ticket.attributeValue("id"));
}

 

SAXReader解析XML文件,然后进行遍历,避免子节点中含中文导致的乱码、解析失败问题
<Org>
  <People>
    <name>张三</STDID>
    <sex>男</STDCN>
    <age>88</STDEN>
    <bz>备注</Summary>
  </People>
  <People>
    <name>李四</STDID>
    <sex>女</STDCN>
    <age>100</STDEN>
    <bz>备注</Summary>
  </People>
</Org>

// 解析XML内容
File file = new File(strFileName);
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(file);
Element root = document.getRootElement();// 获取根节点 
Iterator<Element> iterator = root.elementIterator("People");
// 遍历People节点
while (iterator.hasNext()) {
Element recordEle = (Element) iterator.next();
String name= recordEle.elementTextTrim("name");
// 拿到People节点下的子节点name值
name= StringUtil.isNotEmpty(name) ? name: "";
......处理业务......
......操作数据库......


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
YX6XGF1y07ua