用到dom4j.jar
工具类:
import java.io.File; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.dom4j.DocumentHelper; /** * 针对XML的解析 * 筛选符合条件的element * 条件:elementName、attrName、attrValue * */ public class XMLUtil { public static String elementName; public static String attrName; public static String attrValue; /** * 解析文件,获得符合条件的element * */ public static List<Element> interceptElements(File file) throws DocumentException{ if (elementName==null || "".equals(elementName.trim())) { return null; } if(attrName==null || "".equals(attrName.trim()) || attrValue==null || "".equals(attrValue.trim())){ attrName = ""; attrValue = ""; } SAXReader reader = new SAXReader(); Document doc = reader.read(file); Element root = doc.getRootElement(); List<Element> elements = new ArrayList<Element>(); parse(elements,root); return elements; } /** *解析字符串,获得符合条件的element * */ public static List<Element> interceptElements(String xml) throws DocumentException{ if (elementName==null || "".equals(elementName.trim())) { return null; } if(attrName==null || "".equals(attrName.trim()) || attrValue==null || "".equals(attrValue.trim())){ attrName = ""; attrValue = ""; } Document doc = DocumentHelper.parseText(xml); Element root = doc.getRootElement(); List<Element> elements = new ArrayList<Element>(); parse(elements,root); return elements; } /** * 解析输入流,获得符合条件的element * */ public static List<Element> interceptElements(InputStream in) throws DocumentException{ if (elementName==null || "".equals(elementName.trim())) { return null; } if(attrName==null || "".equals(attrName.trim()) || attrValue==null || "".equals(attrValue.trim())){ attrName = ""; attrValue = ""; } SAXReader reader = new SAXReader(); Document doc = reader.read(in); Element root = doc.getRootElement(); List<Element> elements = new ArrayList<Element>(); parse(elements,root); return elements; } /** * 递归扫描整个xml * */ private static void parse(List<Element> list,Element element){ List<Element> childs = element.elements(); for (int i = 0; i < childs.size();i++) { Element e = childs.get(i); if (elementName.equals(e.getName())) { if("".equals(attrName)){ list.add(e); }else if(attrValue.equals(e.attributeValue(attrName))){ list.add(e); } continue; } if (e.elements().size()>0) { parse(list,e); } } } }
testDemo:我解析的是html中的hidden控件
public class XMLUtilDemo { public static void main(String[] args) { XMLUtil.elementName = "input"; XMLUtil.attrName = "type"; XMLUtil.attrValue = "hidden"; List<Element> elements = null; try { elements = XMLUtil.interceptElements(XMLUtilDemo.class.getResourceAsStream("../domTest.html")); } catch (DocumentException e) { System.out.println(e.getMessage()); } if (elements == null) return; for (Element element : elements) { System.out.println(element.asXML()); //System.out.println(element.attributeValue("name")+"= "+element.attributeValue("value")); } } }
相关推荐
Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc
使用dom4j和jaxen解析xml,已经使用过了
dom,dom4j,sax解析xml 文件经典实例,内置详细注解
dom4j是一种解析XML文档的开放源代码XML框架。本文介绍如何使用包含在dom4j中的解析器创建并修改XML文档。dom4j API包含一个解析XML文档的工具。本文中将使用这个解析器创建一个示例XML文档,然后使用同一个解析器...
项目下包含dom4j的包 是里用dom4j的sax解析方式 sax解析打文件比dom速度快,该项目为测试项目
使用 dom4j 解析 XML dom4j 解析 XML dom4j解析xml
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
Dom4j遍历解析XMLDom4j遍历解析XML
Java使用sax、dom、dom4j解析xml文档的代码,包含dom4j的jar包。
dom4j解析xml实例,dom4j解析xml实例,dom4j解析xml实例,
dom4j面向对象解析xml 含递归小算法
Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档 Dom4j解析和生成XML文档
dom4j API 用于解析XML的java库
分别使用DOM和DOM4j解析XML文件,因为目前使用最广泛的是DOM4j所以只写了用DOM4j对XML进行增删改查。
很详细的文档 可以借鉴下 希望对你有帮助
dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。
dom4j解析xml文件代码示例 dom4j解析xml文件代码示例 dom4j解析xml文件代码示例
java Dom4j 无敌连环解析XML工具类
dom4j解析XML必备jardom4j解析XML必备jardom4j解析XML必备jardom4j解析XML必备jar
利用Dom4j生成XML和解析XML