TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
java使用dom4j解析xml并展示demo(科帮网):stuName.xml:
/ P5 K4 u8 Y% E9 ~. X; t5 V& R
+ p/ t5 l9 Q9 T4 {/ `8 A; s- <?xml version="1.0" encoding="UTF-8"?>0 V; E6 E6 y# _( v5 B$ O8 s, a
- <result>
' p" n: x# M' Z3 ~0 r - <question>
3 h1 d/ h& F- [3 J$ M* I1 j8 G- r - <code>001</code>% X x m) E) r# {; l3 i
- <name>张三</name>
& O6 k- s0 x W; _& \! U( ~% G - </question>
- M$ s* P7 h0 D& E9 ~ - <question>$ @( P: l6 N* H
- <code>002</code>4 A/ k9 @2 n2 V4 @0 E. U! C
- <name>李四</name>
6 T4 {1 c0 g- c0 ]) p: O7 a" N - </question>, }4 ~: `5 O8 Q$ @5 m
- <question>: E7 u( G8 {, @
- <code>003</code>" Y0 c, G1 X* t5 Q+ F" u
- <name>王二</name>
' f3 M: g7 Y3 _- w - </question>0 S8 N% x$ t: L9 r; x
- <question>
" l8 z9 P) o7 S4 T* O - <code>004</code>
- ]) g. Z" Y4 Q7 e' j. { - <name>麻子</name>5 K( E7 i8 E2 i& E
- </question>
0 j3 n- M$ \! V' A9 y - <question>
* Q0 T8 L* b! m( @/ D, k k - <code>005</code>
- R) `- G3 y ] - <name>科帮网</name>
- H5 z* n, C3 ~# b6 v" h - </question>
$ x6 s! Y! c: ]; w8 r. T - </result>
复制代码 XmlReadUtil.java:读取方法
0 d6 P+ O$ b0 v0 t- package com.itstyle.util;2 Y( f; ?& W I% \0 j
6 G- n# k) A+ i# V+ k+ R- import java.io.File;
! h. _$ r9 b Q; S - import java.util.Iterator;7 @. E- R& e' c0 X/ M
- import java.util.Map;+ q7 b) f. S/ X
- ! j$ w% l0 U# V
- import org.dom4j.Attribute;
1 D; ~+ B) E, H+ o+ W, Q - import org.dom4j.Document;; w& q" G: s. l9 T( w
- import org.dom4j.Element;5 n. M. J+ a$ `9 @3 }
- import org.dom4j.io.SAXReader;
0 ~( G k/ F1 ~ - /**
* k" c6 q+ C/ @' D - *
7 |3 G5 P/ O8 m& L; ]6 L - * @author 科帮网(www.52itstyle.com)4 E& R5 n- L% J! z5 [
- *
) t4 O7 c& ~1 I: [6 O4 N5 v% h - */
8 b' h1 D& p* ]7 l9 D! k - public class XmlReadUtil {
( X+ p8 m% W' r1 d# r& ?4 s - @SuppressWarnings("rawtypes")
+ [6 g! e9 O3 u - public static void listBaseInfo(String filePath, Map<String, String> map) {" }# o/ C% {" q
- SAXReader saxReader = new SAXReader();% w/ N5 Z. u4 R: @9 g7 G& u
- try {
}+ j- H+ m$ T' s! A5 V. @, @ - Document document = saxReader.read(new File(filePath));! v5 C9 x+ [7 Q; B" |$ C
- Element root = document.getRootElement();
: ~8 }0 w u$ F0 P$ L - // 用于记录信息编号的变量, g" w. f W: V& T$ \. E' ]
- int num = -1;
7 D7 j) w; d% b* _3 P& ^; x - // 遍历根结点(result)的所有孩子节点(肯定是question节点)
. C# L. x, ?9 z! b# c - Attribute attrCode = root.attribute("code");
- O. L' ~, j" H% g6 w - Attribute attrName = root.attribute("name");4 J1 `6 {5 q3 F, @$ O* s+ W( ]
- if(attrCode!=null){
( c5 H0 L; V& B6 h4 D - map.put(root.getName()+"-"+attrCode.getName(), attrCode.getValue());
$ C# D5 P6 j3 N y - }
8 n* s( U! p; f S1 q - if(attrName!=null){ D& Y6 D' s* a) W: X0 d( s
- map.put(root.getName()+"-"+attrName.getName(), attrName.getValue());
9 f/ V i. K1 N4 F - }2 {, O x D8 G Q; X
- for (Iterator iter = root.elementIterator(); iter.hasNext();) { y/ p# }* s6 r( Z
- Element element = (Element) iter.next();
2 p" k. e) o1 ^; G' E - num++;4 o, j4 l: g# f0 Y
- // 遍历question结点的所有孩子节点(即code, name),并进行处理
. x. v: H, x3 x1 }; A8 j# t - for (Iterator iterInner = element.elementIterator(); iterInner
% N: K5 n1 o% w& V* H3 x4 V - .hasNext();) {
Y2 Y" H$ [2 V - Element elementInner = (Element) iterInner.next();, @- x: @' \0 K4 T
- map.put(elementInner.getName() + num,8 h6 ?' L! \* v8 {% g
- elementInner.getText());" g2 W/ b0 U" _; y* M
- }
7 `0 p7 v9 L- R& t; { - }
/ ^& Q3 R4 M, d( x- `/ M- S - ! B) j. k9 y" R5 V2 m. d) r2 `2 P
- } catch (Exception e) {
/ J3 T6 I- ~! T - e.printStackTrace();* p) T, P& H* Z" Q6 H- q
- }2 k7 C% M" e+ A4 p! V
0 F- g1 l% o3 d% K" W( x- }, C+ e4 ?. ~' ]9 B6 T% g, R) ]! w$ b
- }
. j# V& A0 I; h2 a* l( H% p1 L
复制代码 ReadXmlServlet.java:) E+ L3 u3 t$ h [# P$ J
- package com.itstyle.servlet;
8 w- K# [& Q% t& T7 ]( w/ r' `* R
* `% G. D+ O( W' ^/ w( q$ n2 [2 d' I- import java.io.IOException;; P( y/ v R' C7 x3 C% ]
- import java.io.PrintWriter;' y3 a6 C6 g8 ~! {
- import java.util.ArrayList;% ?8 k3 m# i% m/ S
- import java.util.List;0 a2 o. Z6 O. v3 B Z7 P( _
- 0 L) ?* q5 }/ D# Y
- import javax.servlet.ServletException;
# U4 r* a2 U- \1 F - import javax.servlet.http.HttpServlet;: G9 p" K P$ ~; o( M
- import javax.servlet.http.HttpServletRequest;
+ C9 F( B: {9 t5 Z - import javax.servlet.http.HttpServletResponse;2 m* @6 g# o. g! F
3 l1 z# j: c, v& l- import net.sf.json.JSONArray;
0 l# p5 N9 l2 j: o2 B; d2 X - import net.sf.json.JSONObject;) d. R; u: ^2 Z% V
- B* @- ]7 [4 t9 Z- import com.itstyle.model.CommonEntity;
2 N4 I4 ?1 i9 M" _ - import com.itstyle.util.PropertiesListUtil;
9 T+ A! ]" `- x. F5 I% q - /**& K/ Z& N, N2 B' f: p' `$ B
- * * j" d$ N; @# I0 _4 ^) Y$ r
- * @author 科帮网(www.52itstyle.com)
. L6 i# }# c, w" J0 b; Y - *
$ g e+ E6 h3 c- s2 ?& b! y - */
. T. }$ a% {; b% A - public class ReadXmlServlet extends HttpServlet {$ M0 V, B3 }! V P2 X! H
- + p1 z1 f8 u! Y2 |9 U5 e& S
- private static final long serialVersionUID = 1L;
; E& g1 H" c: ?9 p5 c - private List<CommonEntity> listStu = new ArrayList<CommonEntity>();
- P& y& Y) i- H4 C - public void init() throws ServletException {3 S4 e3 i" X2 h/ e c4 c% A
- // 初始化阶段xml
& G" u$ A8 t: G( A" M. S( z - String path = getServletContext().getRealPath("/file/stuName.xml");2 U3 X: @3 C4 Y, _& i
- try {" T! E5 y/ h8 p8 R3 p7 F" S
- listStu = PropertiesListUtil.listXml(path);0 g- i3 _, E% o* W( D I- j
- System.out.println(listStu.size());
- o, V7 m. S. n( n4 ^- j% X - } catch (Exception e) {) L: w: N& w9 M3 \8 [9 J* K& @
- e.printStackTrace();! F7 }; H3 @2 S6 n: _
- }( J# R. e0 r: F
- }0 Q c* s! p& ^. x1 }9 o. d5 S
- public void doGet(HttpServletRequest request, HttpServletResponse response)3 o. s; @) u0 `5 r" C, `
- throws ServletException, IOException {
7 j& N. B6 N, x. \3 o- Z - JSONArray array = new JSONArray();
7 B( `3 A- }& Z& r - response.setCharacterEncoding("UTF-8");
7 i5 R L( o, M' P$ |! ?" S! w8 F2 o - PrintWriter out = response.getWriter();2 o* r/ H$ {# N2 c. t2 _" t
- try {
- n5 J7 z4 H% X3 z - for(CommonEntity entity:listStu){
- Y4 [$ `. C' }! G6 R1 U- z0 m - JSONObject obj = new JSONObject();% W) J9 W4 G* ~1 i
- obj.put("code", entity.getEntityCode());7 [4 H5 I2 @' J* ^3 F. ?
- obj.put("name", entity.getEntityName());& f) V- W" f5 Z0 s C9 }
- array.add(obj);
: W+ r2 \7 V' L1 d3 k# m" R% x8 S - }3 I5 J0 Y8 P% d+ e [ ]) k
- out.print(array.toString());$ A0 {) x9 _9 c1 C& _ K$ w0 `
- }catch (Exception e) {
7 y/ f+ F5 c( v1 e/ w n - e.printStackTrace();
: M( g4 M; q$ u' M* v# e7 G - } finally {# y6 A1 j& l0 ]$ P1 H' g4 w
- out.close();5 G" W8 m# m$ O6 q8 j0 ^
- }
- w4 N# u e7 f, V* l7 `+ N - }
4 O# f- o& ~# f6 A, a# Q - 7 [, Y: O7 |( T2 H
- public void doPost(HttpServletRequest request, HttpServletResponse response)- H5 `9 [ l- l
- throws ServletException, IOException {
4 _5 {( T* \& H$ q! g! u - doGet(request, response);
1 B# Z+ d( P; r6 S! G7 n- o - }
9 ^- y/ y" ^* `; Q3 A! h - * |$ e V' z" ^2 o
- }$ Q" Q* d3 O0 k3 m' L, L
复制代码
/ m c6 _: A$ P/ X) R! ^* |java使用dom4j解析xml并展示demo(科帮网)下载:点击下载, u8 k& C! V% z) c; t
5 M; Z3 O; j! S% l& f7 P3 M/ q7 I
( A" }! I1 B1 q2 }( X$ p8 i8 ?/ X7 e e0 w/ l. f; u& r. n
" D6 `5 u1 ~' d% L
|
|