0
|
1 package jp.ac.u_ryukyu.cr.ie.tatsuki.xmlReadTest;
|
|
2
|
|
3 import java.io.*;
|
|
4 import java.nio.ByteBuffer;
|
|
5 import java.util.Iterator;
|
|
6
|
|
7 import javax.xml.parsers.*;
|
|
8
|
|
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
|
|
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
|
|
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
|
|
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
|
|
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
|
|
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
|
|
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
|
|
16 import junit.framework.Assert;
|
|
17
|
|
18 class SaxTest {
|
|
19 public static void main(String args[]) {
|
|
20 try {
|
|
21 SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
|
|
22 SAXParser saxParser = saxParserFactory.newSAXParser();
|
|
23 Jungle jungle = new DefaultJungle(null, "hoge",new DefaultTreeEditor(new DefaultTraverser()));
|
|
24 JungleTree tree = jungle.createNewTree("XMLTEST");
|
|
25 TestHandler testHandler = new TestHandler(tree);
|
25
|
26 saxParser.parse(new FileInputStream("xml/sample.xml"), testHandler);
|
0
|
27 JungleTree newTree = testHandler.getTree();
|
44
|
28 InterfaceTraverser ifTraverser = newTree.getTraverser(false);
|
0
|
29
|
42
|
30 Iterator<TreeNode> searchNodeIterator = ifTraverser.find((
|
0
|
31 TreeNode node) -> {
|
|
32 ByteBuffer attribute = node.getAttributes().get("element");
|
|
33 if (attribute != null) {
|
|
34 byte[] byteAttribute = attribute.array();
|
|
35 String str = new String(byteAttribute);
|
|
36 System.out.println("attribute = " + str);
|
|
37 return str.equals("Person");
|
|
38 }
|
|
39 return false;
|
|
40 }, "element", "Person");
|
42
|
41 TreeNode searchNode = searchNodeIterator.next();
|
|
42 Assert.assertEquals(searchNode.getAttributes().getString("element"),"Person");
|
0
|
43
|
|
44
|
42
|
45 searchNodeIterator = ifTraverser.find((TreeNode node) -> {
|
0
|
46 ByteBuffer attribute = node.getAttributes().get("element");
|
|
47 if (attribute != null) {
|
|
48 byte[] byteAttribute = attribute.array();
|
|
49 String str = new String(byteAttribute);
|
|
50 System.out.println("attribute = " + str);
|
|
51 return str.equals("name");
|
|
52 }
|
|
53 return false;
|
|
54 }, "element", "name");
|
|
55
|
42
|
56 searchNode = searchNodeIterator.next();
|
|
57 Assert.assertEquals(searchNode.getAttributes().getString("text"),"tatsuki");
|
0
|
58
|
42
|
59 searchNodeIterator = ifTraverser.find((TreeNode node) -> {
|
0
|
60 ByteBuffer attribute = node.getAttributes().get("text");
|
|
61 if (attribute != null) {
|
|
62 byte[] byteAttribute = attribute.array();
|
|
63 String str = new String(byteAttribute);
|
|
64 System.out.println("attribute = " + str);
|
|
65 return str.equals("tatsuki");
|
|
66 }
|
|
67 return false;
|
|
68 }, "text", "tatsuki");
|
|
69
|
42
|
70 searchNode = searchNodeIterator.next();
|
|
71 Assert.assertEquals(searchNode.getAttributes().getString("id"),"10");
|
0
|
72
|
42
|
73 searchNodeIterator = ifTraverser.find((TreeNode node) -> {
|
0
|
74 ByteBuffer attribute = node.getAttributes().get("id");
|
|
75 if (attribute != null) {
|
|
76 byte[] byteAttribute = attribute.array();
|
|
77 String str = new String(byteAttribute);
|
|
78 System.out.println("attribute = " + str);
|
|
79 return str.equals("10");
|
|
80 }
|
|
81 return false;
|
|
82 }, "id", "10");
|
|
83
|
42
|
84 searchNode = searchNodeIterator.next();
|
|
85 Assert.assertEquals(searchNode.getAttributes().getString("id"),"10");
|
0
|
86
|
|
87 } catch (Exception e) {
|
|
88 e.printStackTrace();
|
|
89 }
|
|
90 }
|
|
91 } |