当前位置: 移动技术网 > IT编程>开发语言>Java > 通过dom4j解析xml字符串(示例代码)

通过dom4j解析xml字符串(示例代码)

2019年07月22日  | 移动技术网IT编程  | 我要评论
复制代码 代码如下:

import java.util.iterator;
import java.util.list;
import org.dom4j.attribute;
import org.dom4j.document;
import org.dom4j.documenthelper;
import org.dom4j.element;
public class test {
 @suppresswarnings("unchecked")
 public static void main(string[] args) throws exception {
  string xml = "<request> <param name='service'>single_trade_query </param><param name='_input_charset'>utf-8 </param><param name='partner'>2088001513232645 </param><param name='out_trade_no'>20090422577264 </param></request>";
  document document = documenthelper.parsetext(xml);
  element root = document.getrootelement();
  list<element> elements = root.elements();
  for (iterator<element> it = elements.iterator(); it.hasnext();) {
   element element = it.next();
   list<attribute> attributes = element.attributes();
   for (int i = 0; i < attributes.size(); i++) {
    attribute attribute = attributes.get(i);
    if ("service".equals(attribute.gettext())) {
     system.out.println(element.getname() + "  :  "
       + element.gettext());
    }
   }
  }
 }
}

或者:
复制代码 代码如下:

import java.io.stringreader;
import java.util.iterator;
import java.util.list;
import org.dom4j.document;
import org.dom4j.element;
import org.dom4j.io.saxreader;
import org.xml.sax.inputsource;
public class test {

 @suppresswarnings("unchecked")
 public static void main(string[] args) throws exception {
  string xml = "<servlet><description></description><display-name>testservlet</display-name><servlet-name>testservlet</servlet-name><servlet-class>test.testservlet</servlet-class></servlet>";
  inputsource in = new inputsource(new stringreader(xml));
  in.setencoding("utf-8");
  saxreader reader = new saxreader();
  document document = reader.read(in);
  element root = document.getrootelement();
  list<element> elements = root.elements();
  for(iterator<element> it = elements.iterator();it.hasnext();){
   element element = it.next();
   system.out.println(element.getname()+" : "+element.gettexttrim());
  }

 }
}

或者增加id属性,直接通过id获取某个属性值:
复制代码 代码如下:

import java.io.stringreader;
import org.dom4j.document;
import org.dom4j.documentexception;
import org.dom4j.element;
import org.dom4j.io.saxreader;
import org.xml.sax.inputsource;
public class test {
    public static void main(string args[]) {
     string xml = "<request> <param name='service' id='tt'>single_trade_query </param><param name='_input_charset'>utf-8 </param><param name='partner'>2088001513232645 </param><param name='out_trade_no'>20090422577264 </param></request>";
     inputsource source = new inputsource(new stringreader(xml));
        saxreader reader = new saxreader();
        document document = null;
  try {
   document = reader.read(source);
  } catch (documentexception e) {
   // todo auto-generated catch block
   e.printstacktrace();
  }
  element root = document.getrootelement();
        system.out.println(document.elementbyid("tt").gettexttrim());
        system.out.println(root.elementbyid("tt").gettexttrim());
    }
}

注意:通过id获取,元素id属性名必须为“大写id”,小写的“id”会认为是普通属性!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网