今天遇到一个需求:从xml中提取所有的文本(或者说是 xml去标签)。 写了一会儿,觉得可能别个兄弟也会遇到,就拿出来,看这样妥不妥~
(用dom4j进行解析的)
/** * 提取分散在xml串中的文本 * @param xml 如:"<a>这<span>是<span>我</span><span>的</span>标题</span>!</a>!!" => 这是我的标题!!! * @return */ private String getTextFromXml(String xml) { Document doc; try { //保证有一个根节点 所以加了一个warp节点 doc = DocumentHelper.parseText("<warp>"+xml+"</warp>"); Element root = doc.getRootElement(); clearElement(root); return root.getTextTrim(); } catch (DocumentException e) { e.printStackTrace(); } return null; } /** * 把 所有子节点 删除掉,但保留节点下面的所有内容 * @param ele * @return */ private Text clearElement(Element ele) { List elepar = ele.content(); Object tempObj; for (int i = 0; i < elepar.size(); i++) { tempObj = elepar.get(i); if (tempObj instanceof Element) { elepar.set(i,clearElement((Element) tempObj)); } } return elepar.size() > 0 ? DocumentHelper.createText(ele.getTextTrim()) : DocumentHelper.createText("") ; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。