TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
java使用dom4j解析xml并展示demo(科帮网):stuName.xml:3 r) p1 q# T! M, k4 E+ r5 m N7 ^: x
9 q4 O& x9 d' Q" L
- <?xml version="1.0" encoding="UTF-8"?>) X- B1 y, T& q# Z
- <result>
# d4 D& ]5 ^: C - <question>
' y* [+ f, T' Q9 `7 c4 T6 A6 @ - <code>001</code>" |5 e0 d7 @0 [( a1 A4 s. K
- <name>张三</name> x, L9 W( Y) k& }- q8 p
- </question>
9 Z( o7 A/ Z. ?4 b - <question>
. i. M) A* x* P) i7 p/ [ - <code>002</code>5 ~3 @& J6 w: X/ {- p/ l
- <name>李四</name>2 l- r0 b0 k( V) F5 x; j3 ~
- </question>
9 O+ ]0 y% ]3 E! d% h" L - <question>
9 w/ [& \/ T! W' U7 | - <code>003</code>
/ V! [" O/ ~3 [1 n - <name>王二</name>
: @: u/ A! _. _, S! Y N - </question>
) w; x0 Y5 [# Z4 K* W) x' E' _ - <question>
|& s% z9 F6 z3 I - <code>004</code>
) \* ]* H/ I* Q+ w9 \ - <name>麻子</name>
; W- Z4 a+ m0 ^, t - </question>
& V4 I0 V' V- p$ [2 w" c. O: g - <question>
* {8 O, r' o' H, ]5 ~) G4 q% |) D+ I - <code>005</code>5 E/ J1 F7 l, g
- <name>科帮网</name>
6 s* K A6 O5 \( @; C0 p0 T - </question>: k3 l# K, \3 j) x
- </result>
复制代码 XmlReadUtil.java:读取方法
* E* \" o$ B2 o- package com.itstyle.util;
+ m! a$ N# u& S - 4 h$ j" K+ m* ~
- import java.io.File;: ]6 l/ ?9 k- o* K+ T; ^* S
- import java.util.Iterator;
4 t! S0 \0 Y& F7 Q: W2 T( }7 Z - import java.util.Map;
3 a+ Z) G- z( N7 ?) _
, K3 D( @- P% p' K8 X4 d- import org.dom4j.Attribute;
- f* E1 y* @8 }/ U, D& x# R/ b$ v - import org.dom4j.Document;) \* I1 _ e5 h3 T
- import org.dom4j.Element;9 W' ?1 F+ T# i9 G/ G2 ~
- import org.dom4j.io.SAXReader;
) n1 [8 c3 z5 V5 [3 z7 a - /**
- d: s1 O" N5 e9 d& V& F - *
2 r& l; ^6 |& e+ [2 ^ - * @author 科帮网(www.52itstyle.com)2 k' t) ?" \& V
- *9 x" N+ G. h) r! O& \8 T
- */
& f% S# Q0 e3 d* u( a - public class XmlReadUtil {
( u: F5 e# F; L' C4 t) M - @SuppressWarnings("rawtypes")1 x3 n. f( x4 Z# j6 Q) H+ ]' N
- public static void listBaseInfo(String filePath, Map<String, String> map) {. [* ]% Z: u. Z, s
- SAXReader saxReader = new SAXReader();; P. G* n2 v. @7 G- P- r
- try {
0 @9 S; @! s' s- k- u- j+ g - Document document = saxReader.read(new File(filePath));
1 O& |3 m2 l# f3 g - Element root = document.getRootElement();
, R; i8 j' c) g) c - // 用于记录信息编号的变量
. r) g" s( F: W+ S# k - int num = -1;
; P$ X& p/ |$ a# Z% F* r - // 遍历根结点(result)的所有孩子节点(肯定是question节点)
2 l: H0 z1 W9 r1 y& A - Attribute attrCode = root.attribute("code");
8 p! V$ o/ k O4 Q6 G0 y - Attribute attrName = root.attribute("name");
, m8 g3 O$ T' ?7 h ^% k! s# t - if(attrCode!=null){
8 V. {. z& j4 D+ i - map.put(root.getName()+"-"+attrCode.getName(), attrCode.getValue()); j; h% c$ R4 Z
- }
& j9 q: T8 ~" Z/ L8 Z5 Q" T, M6 h - if(attrName!=null){
& A C5 z. O2 X; r. } - map.put(root.getName()+"-"+attrName.getName(), attrName.getValue());; c Q( u- l' P2 H
- }
% U+ D- Q# D* O# x0 G - for (Iterator iter = root.elementIterator(); iter.hasNext();) {3 L% Q8 O# F/ I3 n1 h) S+ X& F
- Element element = (Element) iter.next();
# p1 g N% R1 D' I" M - num++;4 p+ a: }0 g. k0 F! I& x
- // 遍历question结点的所有孩子节点(即code, name),并进行处理8 ]5 U! v2 {1 O1 A' h
- for (Iterator iterInner = element.elementIterator(); iterInner
& n8 x: f' v/ U$ c# b - .hasNext();) {
{- P2 |' n, i9 U6 ?% p& W8 h; a. ?+ J - Element elementInner = (Element) iterInner.next();6 j# j' B4 \4 n) h+ `# n: L6 {
- map.put(elementInner.getName() + num,3 P1 B3 ?# u7 u$ h8 e, l: @
- elementInner.getText());
5 ~3 v, n: j8 H - }, C4 Q/ g3 e) u: `* u* p
- }$ ]3 Z) p, H! }! @7 D5 {6 v" z
- O! V$ \- H! z+ r7 S4 x- } catch (Exception e) {8 v# ?9 p0 [( D0 J8 u! Z
- e.printStackTrace();8 y' O: p+ W. q) P
- }+ e- _: I: T( ?# b
3 k- f0 p6 y+ h2 l2 i- }
6 \/ D1 ?1 R; P# L' c - }; T! g5 G6 x* [* l) ]# I/ a
复制代码 ReadXmlServlet.java:- w( w* R; r, v3 a; d* h
- package com.itstyle.servlet;
7 B- J7 ?0 f& V6 _7 c, L% O
3 L( H& _" H2 I$ U: T t0 ^, C- import java.io.IOException;4 A X, z+ G& w4 `
- import java.io.PrintWriter;
$ F3 H2 w4 ^0 f - import java.util.ArrayList;5 _" W8 ]# m5 A
- import java.util.List;
5 U$ y/ B% q- C, h) V6 M - + {- W3 z, V2 K0 X
- import javax.servlet.ServletException;
: @0 a* m% M$ g- b2 l5 P7 Y+ I - import javax.servlet.http.HttpServlet;4 u3 s- n* w" [" N4 C; L1 @" e7 Z% @
- import javax.servlet.http.HttpServletRequest;
% V* M; d. @/ W1 D' o4 P - import javax.servlet.http.HttpServletResponse;
# e0 i. g$ E8 q2 }7 S. u# j
% b Y4 ~! g) G- import net.sf.json.JSONArray;
8 i" O' m) Q g - import net.sf.json.JSONObject;
* C$ f! E0 y8 C" T - " G/ U; V! m) o4 v" L! J
- import com.itstyle.model.CommonEntity;' A: P' i" y/ _: J
- import com.itstyle.util.PropertiesListUtil;
3 |& w* V& B* ?5 ~+ l. C/ _ - /**
% S. j5 b& y& D+ t1 [/ A( C- _- P - * " P9 `& V3 {1 @' M: }' Z
- * @author 科帮网(www.52itstyle.com)% m5 D4 O: M" z/ _6 b1 R9 k
- *$ H, H( I: K2 z, B) n- L$ B$ \
- */
/ O8 B. S# ]7 [8 [0 H, J1 l1 F - public class ReadXmlServlet extends HttpServlet {
9 [+ q0 N2 k5 _/ h. _% N - * t% R$ V; U; E) p& N
- private static final long serialVersionUID = 1L;
! W2 o- d4 s7 @ - private List<CommonEntity> listStu = new ArrayList<CommonEntity>();/ E6 d% Z. g) ~4 \0 l2 a5 H
- public void init() throws ServletException {) T/ `6 b! z( ~- l! V2 j& h. y: F
- // 初始化阶段xml
- c5 D+ }) [7 c1 V& z - String path = getServletContext().getRealPath("/file/stuName.xml");
( d7 m* i$ t$ s6 z& f; D" @$ S - try {
0 F' B. j& y7 b0 d' R - listStu = PropertiesListUtil.listXml(path);
) ], r) X! a, T% Z) h - System.out.println(listStu.size());7 E$ E8 q+ E2 k
- } catch (Exception e) {
3 _5 P2 z, Y: h, G - e.printStackTrace();) J9 G/ I6 [! J8 S8 ]2 ~
- }
/ D( i0 ]- L3 D2 e: W; I0 N - }% y Y* r5 R( ]9 g
- public void doGet(HttpServletRequest request, HttpServletResponse response)
: B9 B" V; L# g6 X k' Q+ p7 n8 B - throws ServletException, IOException {
# a, ]% r: E- z - JSONArray array = new JSONArray();
, Q: I. O0 M8 e+ Y" t9 ^ - response.setCharacterEncoding("UTF-8");
6 |; I6 r( f" u$ p; X9 Y - PrintWriter out = response.getWriter();
. n2 n; n2 O X3 M" T% \* t - try {# M" g |, r6 c* ~
- for(CommonEntity entity:listStu){
% l. i* v3 F4 c4 ] - JSONObject obj = new JSONObject();
6 E. I( ^; g ? - obj.put("code", entity.getEntityCode());- k9 O5 Z: h6 X4 J! m- f' T: P
- obj.put("name", entity.getEntityName());
" I/ } x6 G" R) M7 h - array.add(obj);5 Z. N/ @3 z' D3 J8 D8 Z9 c9 `
- }
5 v% Q% C# ^! c - out.print(array.toString());, Y6 x1 H3 h4 D0 W; K
- }catch (Exception e) {$ ]" p/ Y" g F5 c
- e.printStackTrace();
. X& f/ v. D" }* e) g L1 O: F; s - } finally {
# O% X0 |+ ?- ^- @/ _2 L% T - out.close();3 E2 }8 f6 G/ m0 H8 V+ P
- }" E9 P" l8 L, @( n( ]
- }
; Z0 X6 n$ K& | - + [; v. B& k$ u8 F. @
- public void doPost(HttpServletRequest request, HttpServletResponse response)8 \1 K, V. R: V1 r( K6 y
- throws ServletException, IOException {9 [+ t: d6 ]+ b9 s8 L; r" T
- doGet(request, response);
+ ?) I; V) ?3 I4 a+ `) m - }9 G5 d6 ?& x6 j8 z7 N# f
- : Z1 T0 S, I' b1 j7 N
- }
. g+ v5 L* Z7 F0 i
复制代码 9 m; {, {7 d3 w7 }
java使用dom4j解析xml并展示demo(科帮网)下载:点击下载
) h6 q7 [7 m2 D
: d& i, f7 k" k$ g; u* l; s3 k6 a3 o2 ]+ y
+ i- M w, o0 P3 Q+ K, Q& s- C6 U- G
|
|