# HG changeset patch # User one # Date 1345680213 -32400 # Node ID 5c8c554ee3ac695a725c350516eee731bcfdcbde # Parent fa38ded4c054189476112aca1f75582abb908dd0 hg mv TestSaxParser.java TextTagParser.java diff -r fa38ded4c054 -r 5c8c554ee3ac src/howtouse/TestSaxParser.java --- a/src/howtouse/TestSaxParser.java Thu Aug 23 09:01:52 2012 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,93 +0,0 @@ -package howtouse; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Stack; - -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; - -public class TestSaxParser extends DefaultHandler { - - protected Stack stack; - private MyObject currentObj; - private Attributes currentAttr; - private String currentTag; - private String currentTitleName; - final static String TAGNAME_TITLE = "title"; - final static String TAGNAME_TEXT = "text"; - WikiLinkParser linkParser = new WikiLinkParser(); - - HashMap> hash = new HashMap>(); - HashSet currentLinkHash = new HashSet(); - - public TestSaxParser() { - stack = new Stack(); - } - - public HashMap> getHash() { - return hash; - } - - public void startDocument() { -// System.out.println("read start"); - } - - public void startElement(String uri, String localName, String qName, - Attributes attributes) throws SAXException { - currentTag = qName; - if (qName.equals(TAGNAME_TITLE)) { - currentObj = new MyObject(attributes); - stack.push(currentObj); - } else if (qName.equals(TAGNAME_TEXT)) { - currentObj = new MyObject(attributes); - stack.push(currentObj); - } else { - - } - } - - public void characters(char[] ch, int offset, int length) { - - String value = new String(ch, offset, length); - if (currentObj != null) { - currentObj.setValue(currentTag, currentAttr, value); - - if(currentTag.equals(TAGNAME_TITLE)) { - currentTitleName = value; - } - if(currentTag.equals(TAGNAME_TEXT)) { - HashSet tmpHash = linkParser.parse(value); - if (tmpHash.size() <= 0) return; - for (String link: tmpHash) { - currentLinkHash.add(link); - } - } - } - } - - public void endElement(String uri, String localName, String qName) { - - if (currentObj == null) - return; - if (qName.equals(TAGNAME_TITLE)) { - stack.pop(); - } else if (qName.equals(TAGNAME_TEXT)) { - hash.put(currentTitleName, currentLinkHash); - currentLinkHash = new HashSet(); - stack.pop(); - } else { - - } - if (stack.empty()) - currentObj = null; - else - currentObj = (MyObject) stack.peek(); - } - - public void endDocument() { -// System.out.println("end reading file."); - } - -} diff -r fa38ded4c054 -r 5c8c554ee3ac src/howtouse/TextTagParser.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/howtouse/TextTagParser.java Thu Aug 23 09:03:33 2012 +0900 @@ -0,0 +1,93 @@ +package howtouse; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Stack; + +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +public class TextTagParser extends DefaultHandler { + + protected Stack stack; + private MyObject currentObj; + private Attributes currentAttr; + private String currentTag; + private String currentTitleName; + final static String TAGNAME_TITLE = "title"; + final static String TAGNAME_TEXT = "text"; + WikiLinkParser linkParser = new WikiLinkParser(); + + HashMap> hash = new HashMap>(); + HashSet currentLinkHash = new HashSet(); + + public TextTagParser() { + stack = new Stack(); + } + + public HashMap> getHash() { + return hash; + } + + public void startDocument() { +// System.out.println("read start"); + } + + public void startElement(String uri, String localName, String qName, + Attributes attributes) throws SAXException { + currentTag = qName; + if (qName.equals(TAGNAME_TITLE)) { + currentObj = new MyObject(attributes); + stack.push(currentObj); + } else if (qName.equals(TAGNAME_TEXT)) { + currentObj = new MyObject(attributes); + stack.push(currentObj); + } else { + + } + } + + public void characters(char[] ch, int offset, int length) { + + String value = new String(ch, offset, length); + if (currentObj != null) { + currentObj.setValue(currentTag, currentAttr, value); + + if(currentTag.equals(TAGNAME_TITLE)) { + currentTitleName = value; + } + if(currentTag.equals(TAGNAME_TEXT)) { + HashSet tmpHash = linkParser.parse(value); + if (tmpHash.size() <= 0) return; + for (String link: tmpHash) { + currentLinkHash.add(link); + } + } + } + } + + public void endElement(String uri, String localName, String qName) { + + if (currentObj == null) + return; + if (qName.equals(TAGNAME_TITLE)) { + stack.pop(); + } else if (qName.equals(TAGNAME_TEXT)) { + hash.put(currentTitleName, currentLinkHash); + currentLinkHash = new HashSet(); + stack.pop(); + } else { + + } + if (stack.empty()) + currentObj = null; + else + currentObj = (MyObject) stack.peek(); + } + + public void endDocument() { +// System.out.println("end reading file."); + } + +} diff -r fa38ded4c054 -r 5c8c554ee3ac src/wikigraph/LinkConvertGraph.java --- a/src/wikigraph/LinkConvertGraph.java Thu Aug 23 09:01:52 2012 +0900 +++ b/src/wikigraph/LinkConvertGraph.java Thu Aug 23 09:03:33 2012 +0900 @@ -1,6 +1,6 @@ package wikigraph; -import howtouse.TestSaxParser; +import howtouse.TextTagParser; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -22,13 +22,13 @@ private FileInputStream fis; private SAXParserFactory factory; private SAXParser parser; - private TestSaxParser xmlParser; + private TextTagParser xmlParser; private HashMap> hash; LinkConvertGraph() throws ParserConfigurationException, SAXException { - xmlParser = new TestSaxParser(); + xmlParser = new TextTagParser(); factory = SAXParserFactory.newInstance(); parser = factory.newSAXParser(); } @@ -36,7 +36,7 @@ LinkConvertGraph(final String filename) throws FileNotFoundException, ParserConfigurationException, SAXException { this.filename = filename; fis = new FileInputStream(filename); - xmlParser = new TestSaxParser(); + xmlParser = new TextTagParser(); factory = SAXParserFactory.newInstance(); parser = factory.newSAXParser(); }