TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
java使用dom4j解析xml并展示demo(科帮网):stuName.xml:
+ C4 @+ _3 ~* Z, {. }
+ R' r- d; s" ^9 D, h- <?xml version="1.0" encoding="UTF-8"?>" ~: x' r0 `+ V3 O% F: O
- <result>
$ E# P! s! s8 |& s1 Z - <question>
4 u2 P; X% J9 I* k - <code>001</code>
) l4 S7 A1 S7 Y - <name>张三</name>
/ [0 v1 @: U0 w$ f' w: |, c: p - </question>7 }) |0 }; ?, d9 }# T. @
- <question>/ w* u) S# y$ J
- <code>002</code>' c9 M" p2 `- |8 k$ X* }
- <name>李四</name>
+ j9 {- D3 @# X: U; u$ J+ d! _# f - </question>' a* V4 r' |! { w, Y/ f- n
- <question>
* h5 E* }9 W) q' }8 Z# @ - <code>003</code> _6 [1 ?% e3 R+ [; K( x) t p
- <name>王二</name>. Z+ J% s! R3 a( n
- </question>
( Z+ z% c% \, {0 u7 y - <question>
5 J. Q- F9 O/ @7 n - <code>004</code>
, T, q& b+ D; Q8 |0 F6 Z* ^1 |" @ - <name>麻子</name>
* @8 Y! A7 ~! t6 p0 a - </question>7 o3 r$ K2 P3 G2 `2 X
- <question>
! w+ T" v3 v9 ?( O9 S4 R - <code>005</code>
+ s! d3 ]( g* M4 k( g% @ - <name>科帮网</name>! F( S0 h( i0 a, y) |9 X* x
- </question>
& X( @' N- i% b - </result>
复制代码 XmlReadUtil.java:读取方法
! R( Y0 C% z8 c- package com.itstyle.util;0 n! m" E9 o$ ] t
( m( }# c$ d. O( F( Q, f/ v- import java.io.File;0 g& } N1 E, }
- import java.util.Iterator;
4 R9 r) i F- B+ U6 ]& ]- y - import java.util.Map;
; C8 k" V% a, ?* ~$ C+ h, x8 K - ; ?' \. b z# c; C
- import org.dom4j.Attribute;
9 l( `2 ?" K8 K) M: V. L! T: C - import org.dom4j.Document;
7 J4 H, Y( l& ^, X0 {$ ?+ C - import org.dom4j.Element;
" k( e* T7 p& u1 B - import org.dom4j.io.SAXReader;5 a5 R- ~, C$ S% I; U% G( p
- /**1 j; |/ \ j) ~5 B% U
- * 9 u; ?* T2 i& e* q, \
- * @author 科帮网(www.52itstyle.com)# A' M! T) T& o- T
- *
1 M, h/ d- {- j2 t0 V, [ - */+ K; \! Y9 t S5 E
- public class XmlReadUtil {3 G: \2 L/ L4 E" ?0 m# m
- @SuppressWarnings("rawtypes")& C' ^) w5 E; A( K8 T. E
- public static void listBaseInfo(String filePath, Map<String, String> map) {5 w' ^9 Y8 e/ c: |+ d6 s! ^& z
- SAXReader saxReader = new SAXReader();
# z1 u+ S( y5 u: D - try {6 I6 G C, l2 v. v
- Document document = saxReader.read(new File(filePath));
" q& k, D9 K, E/ ^9 O; P - Element root = document.getRootElement();
$ |4 v5 I' { W @ y( N - // 用于记录信息编号的变量 @: ^' R f; [: v& _
- int num = -1;; j5 D8 U: I, `7 C+ w0 o8 i2 l; Z; Y
- // 遍历根结点(result)的所有孩子节点(肯定是question节点)
. c2 ? D$ Q+ _" i( @ - Attribute attrCode = root.attribute("code"); k" L2 H6 D F3 `" A
- Attribute attrName = root.attribute("name");
; s, ], g! m& i0 i" g! c8 X% ^ - if(attrCode!=null){) B/ u( k9 v3 R6 w9 K! V, C! z4 B
- map.put(root.getName()+"-"+attrCode.getName(), attrCode.getValue());
- k; `% h) i5 D - }6 l# q% ?2 T9 M0 e4 u
- if(attrName!=null){
4 Y4 p+ P+ p! u7 H" Y0 H4 o - map.put(root.getName()+"-"+attrName.getName(), attrName.getValue());+ D) ?' x/ {' @; \ ~$ w/ I$ I
- }* y* O7 O+ [( y, ~0 T) _, E# c4 |
- for (Iterator iter = root.elementIterator(); iter.hasNext();) {
, n Q a' R/ |- {, O - Element element = (Element) iter.next();
8 [# B$ ~, J- @ - num++;
7 g2 V5 X, F6 D3 d' N* F - // 遍历question结点的所有孩子节点(即code, name),并进行处理
H0 F N. L5 r" n* J+ u - for (Iterator iterInner = element.elementIterator(); iterInner& Z5 m# Q7 N- u: R! q7 Z8 H# w
- .hasNext();) {- H* [$ \. `, O/ m; f2 }8 I
- Element elementInner = (Element) iterInner.next();
# g+ q: S3 O0 x* l - map.put(elementInner.getName() + num,
5 [, o3 A8 w4 |0 \: u. ^ - elementInner.getText());2 a* F+ F" }/ |: }% b! J
- }9 H! c! j; I7 w
- }5 h p" W9 S: m+ E. o V
- ) ]4 v' Q4 Q9 b) T* l
- } catch (Exception e) {
: D. D! ?, W6 I: x9 a0 X; O- s - e.printStackTrace();
7 u! e$ k2 v1 ?" m; H% k! t - }
) m9 G* J, j! c! E/ I) B) c& u
: k" I9 E; Z1 N' ^- }
7 S$ f% v+ L8 [2 y- i/ K - }9 h* Y7 E9 `4 h5 E+ i
复制代码 ReadXmlServlet.java:. ?. S! q7 q! F1 h* U
- package com.itstyle.servlet;
9 o4 v; F: `9 U. x$ d5 | - 8 O% k1 a' q+ ]& c/ y* |
- import java.io.IOException;# O% @9 D+ }1 w
- import java.io.PrintWriter;$ T; k. U. W& \
- import java.util.ArrayList;( `" u# w9 _- }+ l. m0 p, ^/ B
- import java.util.List;4 |4 D6 i1 [8 r+ Z# F
( B1 @% f( l& q& o" J$ ]- import javax.servlet.ServletException;8 c4 M6 l+ i/ M
- import javax.servlet.http.HttpServlet;
0 Z r" ~" Q) `0 `; L0 | - import javax.servlet.http.HttpServletRequest;& C9 W( Z1 n3 j }% ?
- import javax.servlet.http.HttpServletResponse;% C: N1 v$ n' _- w# {
/ [( }* |* F) z; q- import net.sf.json.JSONArray;
0 v6 ]! E8 O* V - import net.sf.json.JSONObject;1 Q. a% `- \* E$ d/ l% E
0 [2 A( w! [; {+ @- import com.itstyle.model.CommonEntity;
7 c' [/ x4 _7 e+ t/ e - import com.itstyle.util.PropertiesListUtil;2 ]/ ^8 l; K! X$ J
- /**
$ e4 n1 M* Q7 z- x3 L - * . O- I( j3 Q" R2 y5 K f9 p% L
- * @author 科帮网(www.52itstyle.com)' A5 W# k5 N8 g& s
- *& a/ @$ N/ ?& u+ l& q
- */9 J# |: q2 m) G8 v7 d. q
- public class ReadXmlServlet extends HttpServlet {0 E7 M. ~8 p" K9 a
6 B2 i' T1 i. v( \* i- private static final long serialVersionUID = 1L;" |5 y% D* A. Q# m' Q) e6 b
- private List<CommonEntity> listStu = new ArrayList<CommonEntity>();
+ l; Y: Q6 u! h; q3 T+ Y# | - public void init() throws ServletException {
; V6 u% W! M% r8 W. f4 S - // 初始化阶段xml
" s! H1 j+ K, _+ H - String path = getServletContext().getRealPath("/file/stuName.xml");0 U/ e8 ^- \6 I. u: y% ~
- try {* H8 q9 S, @8 J* A2 v" y
- listStu = PropertiesListUtil.listXml(path);4 j w( r+ a2 L
- System.out.println(listStu.size());) |6 i( ^( ~* r9 _- h0 W/ ?
- } catch (Exception e) {# y& g3 |0 A* Z* R+ ]
- e.printStackTrace();
/ U0 |6 ?* x6 f. U - }' e. J3 y. Q, f
- }
1 d1 W9 c5 n' r- s$ i - public void doGet(HttpServletRequest request, HttpServletResponse response) C2 h3 P. A$ r4 k |9 g
- throws ServletException, IOException {
& v' c |8 B o - JSONArray array = new JSONArray();
2 E8 T6 q0 w8 s9 D, I) ]% u% h! x - response.setCharacterEncoding("UTF-8");$ V0 S, \1 X6 W4 s4 ?# n
- PrintWriter out = response.getWriter();
( a0 E$ f, I* H6 T R! P4 B6 B* K - try {
$ P. ^9 X* N. e" @2 ~ - for(CommonEntity entity:listStu){
: x4 F9 b, V4 x- U) \ - JSONObject obj = new JSONObject();
5 f4 k& Z6 v1 o! m7 R7 y- E - obj.put("code", entity.getEntityCode());
: B( n5 t( Q: o; P. F6 W+ l - obj.put("name", entity.getEntityName());
% o/ o- y- i$ ]0 l" c# I - array.add(obj);
, q$ i* c4 P! |; y0 c* C; p. T- U6 Q - }
3 ~5 C! n, m3 ^0 z' v - out.print(array.toString());
! J! y* i7 N0 Z- d - }catch (Exception e) {
' |! m) `* Q# J4 I% T$ h7 y+ ] - e.printStackTrace();2 k1 Z; m0 C5 ~8 R9 }5 `. r7 M! I
- } finally {
% B7 c. d/ X) T2 t - out.close();
; J2 @) R% ?/ X# X - }( F/ R6 G; Y1 M y9 v' Q
- }: i2 v/ N- t9 A- x; C, s5 l/ d
4 P4 |/ H6 n1 r- d O# i- public void doPost(HttpServletRequest request, HttpServletResponse response)
% q; a1 ?7 a4 P0 f6 Z& J' g - throws ServletException, IOException {' Z" H$ f' F( o2 m9 D
- doGet(request, response);6 [3 y9 X4 T2 k4 c9 _. e0 H
- }2 h' W3 C2 ]. q) x% l" h: R; a; U3 Z
- $ g& x2 G3 T; o( z7 k
- }1 ^* i0 h. j6 v8 b5 a
复制代码
, b' p! |" I9 D$ vjava使用dom4j解析xml并展示demo(科帮网)下载:点击下载& O3 ~- K2 a; y- h% c
7 I }& V3 z, N0 f5 C6 ~" o
0 |; q, u' g5 m8 V/ E# s7 t5 E/ B) ^: N5 a7 Q
1 O4 _) S4 `: O( L7 G. x1 ]4 q V
|
|