- package com.test;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import java.io.OutputStreamWriter;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Set;
- import org.dom4j.Attribute;
- import org.dom4j.Document;
- import org.dom4j.DocumentException;
- import org.dom4j.DocumentHelper;
- import org.dom4j.Element;
- import org.dom4j.io.OutputFormat;
- import org.dom4j.io.SAXReader;
- import org.dom4j.io.XMLWriter;
- import com.baje.sz.util.Doc;
- public class Dom4jSoap {
- /**
- * 取根元素
- * @param path
- * @return
- * @throws DocumentException
- */
- public static Element getRoot(String path) throws DocumentException{
- Document document;
- SAXReader reader=new SAXReader();
- document=reader.read(new File(path));
- Element root=document.getRootElement();
- return root;
- }
- public static void readSoap(Element element){
- if(element.elements().size()==0){
- System.out.println(element.getName()+"*="+element.getText());
- return;
- }
- for (Iterator<Element> iter=element.elementIterator();iter.hasNext();) {
- Element ele=iter.next();
- if(ele.getParent().getName().equalsIgnoreCase("Envelope")){
- System.out.println("-------------------------Envelope的直接子元素:"+ele.getName()+",,"+ele.attributeValue("xmlns"));
- }
- System.out.println(ele.getName()+"%="+ele.getText().trim());
- if(ele.elements().size()!=0){
- System.out.println(("element "+ele.getName()+" has "+ele.elements().size())+(ele.elements().size()==1?" subTag it is ":" subTags there are"));
- readSoap(ele);
- }
- if(ele.getName().equals("UserName")){
- System.out.println("path="+ele.getPath());
- }
- }
- }
- /**
- * 获取节点的元素的值
- * @param filename
- * @param xmlpath="//*[name()='Date'][@id='aa']/*[name()='aaa']"
- * @return
- */
- public static String getElementText(String filename, String xmlpath,String encode) {
- try {
- Document document;
- SAXReader reader=new SAXReader();
- InputStream in = new FileInputStream(new File(filename));
- document=reader.read(in,encode);
- List list = document.selectNodes(xmlpath);
- for(Iterator iter = list.iterator();iter.hasNext();){
- Element e = (Element)iter.next();
- return e.getText();
- }
- return "";
- } catch (Exception e) {
- e.printStackTrace();
- return "";
- }
- }
- /**
- * 取指定节点元素的属性的值
- * @param filename
- * @param xmlpath="//*[name()='Date'][@id='bb']/@ac"
- * @param encode
- * @return
- */
- public static String getAttributesText(String filename, String xmlpath,String encode){
- try {
- Document document;
- SAXReader reader=new SAXReader();
- InputStream in = new FileInputStream(new File(filename));
- document=reader.read(in,encode);
- List list = document.selectNodes(xmlpath);
- for(Iterator iter=list.iterator();iter.hasNext();){
- Attribute a = (Attribute)iter.next();
- return a.getText();
- }
- return "";
- } catch (Exception e) {
- e.printStackTrace();
- return "";
- }
- }
DOM4J处理XML方法记录,附XPATH写法
最新推荐文章于 2021-02-25 16:57:43 发布