TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
java使用dom4j解析xml并展示demo(科帮网):stuName.xml:
' C( M1 f- p2 R! w* x/ J8 s+ f, K9 A# _
- <?xml version="1.0" encoding="UTF-8"?>
8 v' h$ ^) ?. b' h6 V8 L+ v - <result>: F- B) j ^3 v# O3 r# s0 v
- <question>3 |9 P) ?: B" \' Y3 I* V; q5 m
- <code>001</code>2 D8 U2 J: h$ w! [2 `/ f" D9 Y
- <name>张三</name>2 D) `5 I& a4 U
- </question>
! Z* v9 y" n5 p* d4 |( F! W7 E+ Z1 f - <question> @& X( L; R2 U9 v F- C2 ^6 X
- <code>002</code>0 o( K3 ^# G- b! f# F. |
- <name>李四</name>
3 q3 U+ K' u9 b$ C" r u4 G - </question>
0 S# ?. N) a3 q, I1 g$ g - <question>
- Y9 \. Q. B7 o! f; A" Q9 r$ D - <code>003</code>
9 B1 n; G# Z9 a. n - <name>王二</name>
) |" T5 h' @7 |& c9 r - </question>9 J2 @4 [- y- A3 A6 P0 z
- <question>' _' E+ y. f. s8 Y* U
- <code>004</code>
. F+ {8 |- Z( K+ O5 e5 t9 g - <name>麻子</name>
+ W7 H( S, [ e - </question>
+ Q6 j! | X1 e1 Y - <question>
1 b( I; G5 e8 a' q. B3 O - <code>005</code>
9 }: y. f5 W9 y$ G - <name>科帮网</name>) k5 ~0 Q: c0 S
- </question>, j* c4 c: o1 u% Y
- </result>
复制代码 XmlReadUtil.java:读取方法
" d$ a7 [( }" b! I p& ?- package com.itstyle.util;
+ K7 W p( W# n6 o: J* h$ i( c - & R' v1 s, K2 M' ?6 v
- import java.io.File;# ]" E) O0 B8 T" y/ ~2 Q- p
- import java.util.Iterator;) Z5 @" A L: l5 g
- import java.util.Map;& s* C, I, h8 v8 t/ ^ @5 c: m6 @
- 4 Y$ j' [) `0 j9 L$ b; m# v
- import org.dom4j.Attribute;
A- g- ]) i7 R; `2 d" l: {8 B - import org.dom4j.Document;
7 ^; D9 S0 ]- O' y6 E0 k$ ~ - import org.dom4j.Element;
# `0 Y: d2 o5 U, j% m - import org.dom4j.io.SAXReader;
7 _; |. Y. T7 N+ P* v. _7 E - /** ^. p5 {- R. i& c/ R d
- * 9 T5 x( ]$ }, B2 Y" |7 l
- * @author 科帮网(www.52itstyle.com)
0 j0 @+ |- a" n - *
, z+ z* X4 M! F8 j- G0 b0 v - */+ ^4 S+ A& T7 s$ t( _
- public class XmlReadUtil {" ~! @; O. _9 S: g' F1 I
- @SuppressWarnings("rawtypes")& U6 D- K' K/ V$ I. r- c
- public static void listBaseInfo(String filePath, Map<String, String> map) {
3 {/ ]: h9 r: j - SAXReader saxReader = new SAXReader();: i k) R7 }5 u2 b9 w
- try {
M4 T$ E& G! I - Document document = saxReader.read(new File(filePath));
) u8 z0 _$ E6 B) x - Element root = document.getRootElement();7 ?% D9 g! t$ w+ P
- // 用于记录信息编号的变量9 C* L. ?% [2 x* ]5 s
- int num = -1;
; K) p( O! R1 {. s3 H! I/ ?0 o - // 遍历根结点(result)的所有孩子节点(肯定是question节点)
) f' ?5 W) K" q/ M" g4 \- b - Attribute attrCode = root.attribute("code");
& M3 a9 p$ K6 @ - Attribute attrName = root.attribute("name");
" ?# w; e+ R0 K g7 k& o' |' D - if(attrCode!=null){# P! z2 |3 V6 I: L# }: P: t
- map.put(root.getName()+"-"+attrCode.getName(), attrCode.getValue());
. J# d2 _5 G/ m( M5 H/ j) d) g - }
( V/ s; g: C4 V0 R$ X% O - if(attrName!=null){ S5 B- K6 S* T. l& A5 m
- map.put(root.getName()+"-"+attrName.getName(), attrName.getValue());
4 Y0 T: I* x! X: { - }6 S, V$ y i5 M3 G1 [
- for (Iterator iter = root.elementIterator(); iter.hasNext();) {0 U- f9 N) W+ u; V$ R
- Element element = (Element) iter.next();( `9 Z" X$ N( \4 x7 n- x2 d
- num++;
; |( h; J% }# M8 j) D% S! z; O - // 遍历question结点的所有孩子节点(即code, name),并进行处理
/ E7 Z4 S z0 p% d - for (Iterator iterInner = element.elementIterator(); iterInner& @/ f. A6 ^: S \
- .hasNext();) {, i- H' F3 c# v( ?3 h! V: h
- Element elementInner = (Element) iterInner.next();* P0 U8 \, ]* f5 I1 d8 j. A! u
- map.put(elementInner.getName() + num,
4 B% e+ O9 Z9 p& ?. X - elementInner.getText());
# D ]$ j0 V( G5 j6 E1 m* K - }
. s7 ~7 o2 r* { - }& ]" J2 v! v, I' p2 ^
7 s0 y: p( j/ B) I- } catch (Exception e) {
' A2 Z' y5 k2 j* v6 T/ a - e.printStackTrace();: f, ~1 a" s* k4 H5 g8 p
- }
* { t: J( [. o# E2 d% m - 3 }/ y6 i: i9 Q' a
- }
k" B0 U1 I" t - }# J5 K; j+ e6 o* O( l
复制代码 ReadXmlServlet.java:
5 r0 {6 @6 c' t- package com.itstyle.servlet;! u: |) I0 z1 Y9 G3 ~$ [' H! O! @ T
# J4 t- d+ |; Z$ l8 `- import java.io.IOException;
( w6 V2 {: ~( q" j' N" D4 `0 z6 y - import java.io.PrintWriter;
& g, r0 J) A8 S1 a( c5 ~$ l - import java.util.ArrayList;
4 O5 l: W- J7 x" Y - import java.util.List;( P! v: X1 R; i" B
6 p# u" b+ v# g# {: o+ V0 B- import javax.servlet.ServletException;
& y3 a0 B- i; Y n% r, Z. T - import javax.servlet.http.HttpServlet;9 T) \8 A: i) w/ y! N. w
- import javax.servlet.http.HttpServletRequest;
5 }. m; v4 p9 r" V. I3 v) O0 Y2 M - import javax.servlet.http.HttpServletResponse;' x, C4 T0 }) {& I4 @6 P4 v( s
- 3 f; A, \# n& r0 M
- import net.sf.json.JSONArray;5 {/ S( D9 o! x
- import net.sf.json.JSONObject;) i' j7 B$ c4 ~" S( G
4 `% j$ f& a. H3 H$ q. H+ o+ n- import com.itstyle.model.CommonEntity;; n. S* P+ z* b
- import com.itstyle.util.PropertiesListUtil;
: i. Z# N, B& @: @/ h5 l9 y" t - /**
/ p* i z4 r- G; y. C; [( _: e0 S) A - *
* |- H' w7 X2 C% N! o0 O - * @author 科帮网(www.52itstyle.com)
- D8 }1 K& I1 |1 {* l% a - *6 q2 P; H7 _0 \8 Z+ d/ w
- */* o2 q3 q" \- ]7 t. f
- public class ReadXmlServlet extends HttpServlet {
& a! K) N4 u+ a; y* M - E" Z5 X9 a7 i2 V. Z/ g: \2 m" Y
- private static final long serialVersionUID = 1L;
( G' U. j1 F* e) D4 v - private List<CommonEntity> listStu = new ArrayList<CommonEntity>();$ _0 C! t4 p+ f) Z! ^
- public void init() throws ServletException {
. I G! a: g; q6 q8 a# h4 s - // 初始化阶段xml; X r- ]' k# }, M
- String path = getServletContext().getRealPath("/file/stuName.xml");
a' ^6 p, p l3 f - try {
% o5 r: G# a6 T5 Z& w* A - listStu = PropertiesListUtil.listXml(path);
0 R: f) h! N* f( B$ F. U% c - System.out.println(listStu.size());; ]" F/ Q( O: H7 o6 M: B
- } catch (Exception e) {! T) k# t# w- @6 H) Q' z( P
- e.printStackTrace();3 F# k) v; D1 s8 I1 [' _; x
- }
/ B! O0 |6 R, e2 f) O' r4 X - }
4 t! g& ]9 T! Q4 t: v - public void doGet(HttpServletRequest request, HttpServletResponse response)7 U% I6 J* v: }
- throws ServletException, IOException {
7 g3 w: \5 @' c( B6 l ^# U% x - JSONArray array = new JSONArray();
6 M% ]) f# M" C4 Z2 x6 i - response.setCharacterEncoding("UTF-8");3 o+ U& L y1 `# u& b
- PrintWriter out = response.getWriter();$ a, S5 {) \( F: w& E/ E6 e0 u
- try {6 n+ O. Q$ H- |7 [" }$ c
- for(CommonEntity entity:listStu){
5 W" h* |6 x$ O: L3 M" V - JSONObject obj = new JSONObject();
- r) U4 }1 G/ X Q9 z - obj.put("code", entity.getEntityCode());8 o- s# i9 I4 j5 ^% t
- obj.put("name", entity.getEntityName());
; @5 M0 Q2 F: D8 R - array.add(obj);
; O2 i0 X% v6 ], t5 C# y - }2 N2 ~' U2 n& _) q* d8 j8 L
- out.print(array.toString());
: G. e. h3 w0 u8 N/ P& ?& a; U - }catch (Exception e) {$ w6 o3 b, q/ i& G9 ^4 Y' R
- e.printStackTrace();2 |4 M" R0 t1 C: q
- } finally {
. Y0 }% A; s& V' H% k! |) C3 { - out.close();. x4 m0 b4 a- R! y# }% b v( C
- }& o5 |7 o$ L( W) Z, W
- }
2 q3 i) k$ N$ s3 n2 g - 3 D& @% d4 H, `, M# b: p4 {
- public void doPost(HttpServletRequest request, HttpServletResponse response)! P* c3 t8 Y( v1 u# Q
- throws ServletException, IOException {) Y" X4 H& M9 e5 ^* C
- doGet(request, response);
/ @3 M7 v: Z' s5 u - }
7 U' G, |- Y; g' z
1 s& E( c E. A- }$ E2 L. Z4 s: I5 j+ q# U1 s e
复制代码
9 c+ P/ ^+ u! D0 {java使用dom4j解析xml并展示demo(科帮网)下载:点击下载3 V, V8 {0 k, Q N
7 ^+ Y9 A; a' u1 g. X) I' A$ d9 Q- v0 g+ }6 @
" Q2 F: _1 H( _7 @" w5 V+ r
9 N9 K& q& x' \! [
|
|