今天遇到一个需求:从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("") ; }原文链接:https://www.f2er.com/xml/300482.html