1
2 package com.parsexml ;
3 /*测试用的test.xml 请另存
4 <?xml version="1.0" encoding="gb2312"?>
5 <books>
6 <name>test</name>
7 <book>
8 <name>rjzjh</name>
9 <price>jjjjjj</price>
10 </book>
11 <test>
12 <name>hcm</name>
13 <feng>sadf</feng>
14 </test>
15 </books>
16 */
17 import javax.swing.*;
18 import java.io.* ;
19 import java.net.*;
20 import javax.xml.parsers.* ;
21 import org.w3c.dom.* ;
22 import org.xml.sax.SAXException ;
23
24 public class NewParsexml
25 {
26 public static String infotext ;
27 public NewParsexml ()
28 {
29 }
30 public URL geturl(String str)
31 {
32 return (getClass().getResource (str));
33 }
34 public static String parse (String text)
35 {
36 // 得到DOM解析器的工厂实例
37 DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance () ;
38 try
39 {
40 DocumentBuilder dombuilder = domfac.newDocumentBuilder () ;
41 // InputStream is = new FileInputStream ("src/com/parsexml/test.xml");
42 InputStream is = NewParsexml.class.getResourceAsStream("test.xml");
43 // InputStream is = new FileInputStream ("com/parsexml/test.xml");
44 Document doc = dombuilder.parse (is) ;
45 Element root = doc.getDocumentElement () ;
46 NodeList books = root.getChildNodes () ;
47 if (books != null)
48 {
49 for (int i = 0 ; i < books.getLength () ; i ++ )
50 {
51 Node book = books.item (i) ;
52 if (book.getNodeName ().equals (text))
53 {
54 infotext = book.getFirstChild ().getNodeValue () ;
55 //System.out.println(infotext);
56 return infotext;
57 }
58 if (book.getNodeType () == Node.ELEMENT_NODE)
59 {
60 for (Node node = book.getFirstChild () ; node != null ; node = node.getNextSibling ())
61 {
62 if (node.getNodeType () == Node.ELEMENT_NODE)
63 {
64 if (node.getNodeName ().equals (text))
65 {
66 infotext = node.getFirstChild ().getNodeValue () ;
67 //System.out.println (infotext) ;
68 return infotext ;
69 }
70 }
71 }
72 }
73 }
74 }
75 }
76 catch (ParserConfigurationException e)
77 {
78 e.printStackTrace () ;
79 }
80 catch (FileNotFoundException e)
81 {
82 e.printStackTrace () ;
83 }
84 catch (SAXException e)
85 {
86 e.printStackTrace () ;
87 }
88 catch (IOException e)
89 {
90 e.printStackTrace () ;
91 }
92 return infotext ;
93 }
94 // public static void main(String args[])
95 // {
96 // //为了打包 测试路径
97 // JFrame frame = new JFrame ("test");
98 // frame.setLayout (null);
99 // frame.setSize (200,300);
100 // JLabel label = new JLabel(parse("name"));
101 // label.setBounds (0,0,50,100);
102 // frame.add (label);
103 // frame.setVisible (true);
104 // frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
105 // System.out.println (parse("name"));
106 // }
107 }
108
posted on 2007-02-06 17:12
-274°C 阅读(973)
评论(0) 编辑 收藏 所属分类:
JAVA 、
XML