TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
java使用dom4j解析xml并展示demo(科帮网):stuName.xml:
& @( f7 Q9 M4 P5 k9 H8 S- i4 ~
0 N. c. B& o8 B) Y( V: X; x- <?xml version="1.0" encoding="UTF-8"?>
& O# K# l0 L+ d& W% [ - <result>0 @' e. \- T6 ~( z. X
- <question>. ~" }3 N/ K* G& \9 X9 _$ B
- <code>001</code>
4 n6 y' l6 Y' N, A# s$ s - <name>张三</name>
# M1 ` S, T* X5 c0 N - </question>& F6 e4 r3 G/ s+ r& B1 z
- <question>
! u" C- K X. j1 g# w - <code>002</code>
% Y/ o& ^4 R) R$ z! l - <name>李四</name>
4 D. ]- M7 s. O: j# x - </question>. y. S3 i$ z2 g
- <question>* `& O3 U( k0 o& W
- <code>003</code>$ b8 {1 |8 @( n+ q! z
- <name>王二</name>( u# `" ?9 b3 r* J
- </question>' {6 F: X- c5 n4 P; I
- <question>4 @3 ]7 ~1 y* `3 \( n& j* e: k* B
- <code>004</code>6 f9 r1 c* [1 v; ~3 c
- <name>麻子</name>1 F# o, `% M" L- P' ]
- </question>
( f7 {& Z9 }9 u( x+ g2 f - <question>* a( K% u; h5 J- X* ^
- <code>005</code>( B7 }' i* I0 m/ V( L; c; w( u3 m, u
- <name>科帮网</name>
3 X8 d& `! u$ G; T - </question>
& v% x ^/ v+ U8 F - </result>
复制代码 XmlReadUtil.java:读取方法
% q7 O0 V+ V! H& B4 _; }- package com.itstyle.util;" l1 V3 F" M0 P6 ^, i) r
) M: F# ^; x: C D, I- import java.io.File;
: O0 N. j& O' Y. T9 x( n0 I - import java.util.Iterator;1 x1 i' `, _/ c) ] h" L8 g# y$ i
- import java.util.Map;; E. b# U( d; `+ ^6 }$ m
- / O5 X% t* H' _
- import org.dom4j.Attribute;' ^' n1 l w- I! A3 L; N9 I
- import org.dom4j.Document;
8 ]( c. w& v1 F+ V% Y# g - import org.dom4j.Element;
* o8 L' o' ^) a1 Z; |7 f - import org.dom4j.io.SAXReader;
2 \6 T7 @* E# B) W - /**- U; u, V; i; A* y: p" n; c
- * 4 q& Y7 l! o3 S* ^( z* K
- * @author 科帮网(www.52itstyle.com)6 c' _% {2 n w+ f4 F- D/ Q" H
- ** I4 K" ?& b1 |6 E U9 H& R5 Y
- */3 Q! ]* l7 Z% t) O
- public class XmlReadUtil {
9 j2 K5 R( b- W1 d - @SuppressWarnings("rawtypes")
: E9 E8 `! U6 ?& f$ |% N: Q. R - public static void listBaseInfo(String filePath, Map<String, String> map) {" [6 h( l3 d# N, a; ?8 W
- SAXReader saxReader = new SAXReader();6 Y9 a2 G* ?! U0 e7 \1 e
- try {
" k8 f6 D2 C9 g4 { J/ r. \ - Document document = saxReader.read(new File(filePath));
& i$ o2 i+ F, \' i j% f4 l - Element root = document.getRootElement();
! Q! P+ J8 T; c/ l/ Y b' h - // 用于记录信息编号的变量& ^ M1 p- H3 J8 y
- int num = -1;
+ f' { C7 c" j1 w) N1 T - // 遍历根结点(result)的所有孩子节点(肯定是question节点)
4 { v: r* j& [. [: h. q+ {7 D" Z - Attribute attrCode = root.attribute("code");
1 K- V7 A4 N E% W* c* B7 Z - Attribute attrName = root.attribute("name");; {& f6 s! x. J$ K) T1 M* `
- if(attrCode!=null){
# @ {/ `6 \! I: H7 T; l" f - map.put(root.getName()+"-"+attrCode.getName(), attrCode.getValue());+ @' p% L% F4 y4 w
- }
& z* r+ q6 w' n' q7 b* ` - if(attrName!=null){1 `1 P( ^: n" m: l+ Y4 o* C2 L+ [" c
- map.put(root.getName()+"-"+attrName.getName(), attrName.getValue());+ |* j& M. r O% U; |% z
- }6 U) s& O% U% i3 S- s) ?# K4 E# f
- for (Iterator iter = root.elementIterator(); iter.hasNext();) {
& x6 O, d# M. X! B0 X3 y - Element element = (Element) iter.next();- J1 e" z* S8 R- W5 \ N4 C( K
- num++;
8 N u) t! } F8 F$ G, p - // 遍历question结点的所有孩子节点(即code, name),并进行处理
5 M" ~* ~0 Q7 ?( w n; N8 A - for (Iterator iterInner = element.elementIterator(); iterInner
) W4 M. d( B3 `2 b7 Q# L - .hasNext();) {4 [- ]# K( L3 @ Q9 R/ n+ L9 `4 J) b
- Element elementInner = (Element) iterInner.next();
" V( s Q6 y! N+ w: W - map.put(elementInner.getName() + num,
4 _& w! r1 d+ ]/ t. K - elementInner.getText());0 b) Y( R/ k4 s! ^2 b) U
- }% ~7 n. j, r% f5 c1 z/ c8 l
- }
' E; ]. e: u$ o9 G9 Y' `# m8 r - " z, ~% V) f& d' l
- } catch (Exception e) {
7 Q+ v+ ^% x& K; I- I - e.printStackTrace();
. l6 @ i5 _! s - }
# Y6 n- U! F& S( N
( F. ]+ Q4 l" @+ x" c" C- }
/ ~% O4 M- _5 p+ K - }
7 Q% u& P z6 c: e; M/ {
复制代码 ReadXmlServlet.java:
" e# e) D* z% M- c m- package com.itstyle.servlet;1 X' U( d" J" O- S8 C2 o9 P8 A, T
9 Y; u1 U9 K: w- import java.io.IOException;. z. {# q1 a' g7 n- Z0 s5 G
- import java.io.PrintWriter;
, g2 `. F% G9 J2 q5 X6 {) l - import java.util.ArrayList;" O/ m& D8 {8 B
- import java.util.List;( i$ @8 N6 u0 e4 e$ M& Y% c% {0 |8 |6 V. A
- & v8 h4 C: u1 z! \- H
- import javax.servlet.ServletException;
/ X/ t. ]. D& i v* R - import javax.servlet.http.HttpServlet;
# Q9 }/ B1 H( Q8 c) u) G - import javax.servlet.http.HttpServletRequest;& z1 R/ F/ }6 L2 t6 q# Q7 M
- import javax.servlet.http.HttpServletResponse;# z: X& \" V Z- i5 m$ B
- ) K4 C+ W$ W' W6 e+ M4 O' G
- import net.sf.json.JSONArray;
9 T4 C7 f2 \! F4 f - import net.sf.json.JSONObject;: q A, N' W: O8 s5 f2 q* t
$ ~# M' z$ V% d; G# M- import com.itstyle.model.CommonEntity;
: X4 f/ U1 I+ s. p% q5 f- X - import com.itstyle.util.PropertiesListUtil;2 A, F* L' X9 W8 N
- /**
# Y* R( ^% a- d. ]/ s/ k, i4 b2 p - * % \2 i$ _5 e. b% K7 |. z" j* }
- * @author 科帮网(www.52itstyle.com)
0 F$ p5 h/ \0 q2 B$ g! w - *; U, A. h0 j: {, O: Q; V$ r
- */
# n2 o5 s% K" D) d V - public class ReadXmlServlet extends HttpServlet {7 l' L7 r+ y$ i! m& T
- x" p" s4 s' d$ S5 T
- private static final long serialVersionUID = 1L;
/ I7 ~- T6 @: t$ @' Z. R - private List<CommonEntity> listStu = new ArrayList<CommonEntity>();
% M$ d+ k% b+ I - public void init() throws ServletException {: R6 c7 F6 J0 N+ R! M
- // 初始化阶段xml
* Y3 k8 J% M! w) P2 X5 ^ - String path = getServletContext().getRealPath("/file/stuName.xml");0 C& X0 T2 f" V" S2 f1 C/ D
- try {- J5 Z( v( c2 H- U
- listStu = PropertiesListUtil.listXml(path);4 B6 o, f( g4 }& A# [2 _
- System.out.println(listStu.size());: s6 v0 |0 j2 Y: {8 B
- } catch (Exception e) {
# ^( N2 R* j2 t" y - e.printStackTrace();
' z& B) J/ m4 e, V/ X - }% e$ l6 h4 D! h! j
- }
+ z2 E3 S1 F1 P* l: g. c- O w - public void doGet(HttpServletRequest request, HttpServletResponse response)3 `2 ~& X) j$ Z0 p) Y3 `/ C
- throws ServletException, IOException {! p. G! w8 v& ?
- JSONArray array = new JSONArray();; ]: p. `$ G( L3 Q5 t6 a9 i5 r
- response.setCharacterEncoding("UTF-8");2 N& [: x' @! z* o2 }, j# U
- PrintWriter out = response.getWriter();
8 H% z* r& L7 q3 F# l7 j - try {
; U9 H4 r# [4 D" h, x! R# c - for(CommonEntity entity:listStu){( q) ?& e# j9 t& T
- JSONObject obj = new JSONObject();
- n5 ]5 B4 L/ o: ]& v - obj.put("code", entity.getEntityCode());
1 F y- J& n% e1 U6 g$ J8 J - obj.put("name", entity.getEntityName());
. y* G; R% r; o; I( d# B' x) d7 r' U - array.add(obj);# g) e+ H: w; {& H3 c! j5 {( c
- }, d1 i( P- B9 y R/ c
- out.print(array.toString());6 D( b+ S% I1 a2 r. y
- }catch (Exception e) {3 y5 @2 Z& y8 |- y) x
- e.printStackTrace();
% \/ \, V+ c3 a) C9 G$ ~ - } finally {
2 C! T) X ]9 s! x: ~ - out.close();6 c# r# Y1 A% G3 g( J; Z
- }
& e; E2 Y& X r; B4 Y - }
/ M! m( @: Q) g
5 C7 [" N& x4 p6 ~8 D# C- public void doPost(HttpServletRequest request, HttpServletResponse response)$ C4 u6 q& X- }; B
- throws ServletException, IOException {
6 R4 q, q; u0 e& U6 P8 R - doGet(request, response);
" x$ ?! |) e8 O. M1 b - }
) `3 X" B* e- H4 W9 w: P4 d8 t3 b
; D( G: w1 V6 V3 S8 f3 P$ K- C- }
5 S; z9 m# i4 q# ]3 A
复制代码 $ x" ~ M n8 L" M' r: @( o+ `
java使用dom4j解析xml并展示demo(科帮网)下载:点击下载
$ e* L0 f: r3 {" }
/ g6 u5 U L0 h9 _: q. U c+ W5 K- c0 p' d8 T; ] l
/ _8 ~0 l4 Q& V; S8 S# g
2 t" O3 b) @. C8 x5 d& R7 J |
|