view src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/xmlReadTest/SaxTest.java @ 45:8e531233d376 default tip

commit
author one
date Wed, 26 Nov 2014 06:23:40 +0900
parents 5e8eac03fed3
children
line wrap: on
line source

package jp.ac.u_ryukyu.cr.ie.tatsuki.xmlReadTest;

import java.io.*;
import java.nio.ByteBuffer;
import java.util.Iterator;

import javax.xml.parsers.*;

import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
import junit.framework.Assert;

class SaxTest {
	public static void main(String args[]) {
		try {
			SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
			SAXParser saxParser = saxParserFactory.newSAXParser();
			Jungle jungle = new DefaultJungle(null, "hoge",new DefaultTreeEditor(new DefaultTraverser()));
			JungleTree tree = jungle.createNewTree("XMLTEST");
			TestHandler testHandler = new TestHandler(tree);
			saxParser.parse(new FileInputStream("xml/sample.xml"), testHandler);
			JungleTree newTree = testHandler.getTree();
			InterfaceTraverser ifTraverser = newTree.getTraverser(false);

			Iterator<TreeNode> searchNodeIterator = ifTraverser.find((
					TreeNode node) -> {
				ByteBuffer attribute = node.getAttributes().get("element");
				if (attribute != null) {
					byte[] byteAttribute = attribute.array();
					String str = new String(byteAttribute);
					System.out.println("attribute = " + str);
					return str.equals("Person");
				}
				return false;
			}, "element", "Person");
			TreeNode searchNode = searchNodeIterator.next();
			Assert.assertEquals(searchNode.getAttributes().getString("element"),"Person");

			
			searchNodeIterator = ifTraverser.find((TreeNode node) -> {
				ByteBuffer attribute = node.getAttributes().get("element");
				if (attribute != null) {
					byte[] byteAttribute = attribute.array();
					String str = new String(byteAttribute);
					System.out.println("attribute = " + str);
					return str.equals("name");
				}
				return false;
			}, "element", "name");
			
			searchNode = searchNodeIterator.next();
			Assert.assertEquals(searchNode.getAttributes().getString("text"),"tatsuki");
			
			searchNodeIterator = ifTraverser.find((TreeNode node) -> {
				ByteBuffer attribute = node.getAttributes().get("text");
				if (attribute != null) {
					byte[] byteAttribute = attribute.array();
					String str = new String(byteAttribute);
					System.out.println("attribute = " + str);
					return str.equals("tatsuki");
				}
				return false;
			}, "text", "tatsuki");
			
			searchNode = searchNodeIterator.next();
			Assert.assertEquals(searchNode.getAttributes().getString("id"),"10");

			searchNodeIterator = ifTraverser.find((TreeNode node) -> {
				ByteBuffer attribute = node.getAttributes().get("id");
				if (attribute != null) {
					byte[] byteAttribute = attribute.array();
					String str = new String(byteAttribute);
					System.out.println("attribute = " + str);
					return str.equals("10");
				}
				return false;
			}, "id", "10");
			
			searchNode = searchNodeIterator.next();
			Assert.assertEquals(searchNode.getAttributes().getString("id"),"10");
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}