Mercurial > hg > Members > tatsuki > JungleXMLReader
view src/test/java/jp/ac/u_ryukyu/cr/ie/tatsuki/xmlReadTest/SaxTest.java @ 4:9f6ac805d323
minner change
author | one |
---|---|
date | Fri, 24 Oct 2014 18:00:36 +0900 |
parents | faedeec97605 |
children | 6f9439ca3eb5 |
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.NodePath; 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 jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; 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("/Users/e115731/workspace/aaa/xml/sample.xml"), testHandler); JungleTree newTree = testHandler.getTree(); InterfaceTraverser ifTraverser = newTree.getTraverser(); Iterator<Pair<TreeNode, NodePath>> searchNode = 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"); Pair<TreeNode, NodePath> nodePair = searchNode.next(); Assert.assertEquals(nodePair.left().getAttributes().getString("element"),"Person"); Assert.assertEquals(nodePair.right().toString(), "<-1,0>"); searchNode = 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"); nodePair = searchNode.next(); Assert.assertEquals(nodePair.left().getAttributes().getString("text"),"tatsuki"); Assert.assertEquals(nodePair.right().toString(), "<-1,0,0>"); searchNode = 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"); nodePair = searchNode.next(); Assert.assertEquals(nodePair.left().getAttributes().getString("id"),"10"); Assert.assertEquals(nodePair.right().toString(), "<-1,0,0>"); searchNode = 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"); nodePair = searchNode.next(); Assert.assertEquals(nodePair.left().getAttributes().getString("id"),"10"); Assert.assertEquals(nodePair.right().toString(), "<-1,0,0>"); } catch (Exception e) { e.printStackTrace(); } } }