- 投稿者: みゅ
- カテゴリ: Java
- 優先度: 普通
- 状態: 完了
- 日時: 2009年11月16日 11時23分32秒
- ダウンロード
- Eclipseへの登録
- 適当なサンプル用のプロジェクトを作成する
- そのプロジェクトのプロパティで「Javaのビルド・パス」の項目を表示
- ライブラリタブを表示
- 「外部 JAR の追加ボタンで登録をする
- filterbuilder.jar・htmllexer.jar・htmlparser.jar・sitecapturer.jar・thumbelina.jar
- Xerces-J-bin.2.9.1.tar.gz、Xerces-J-src.2.9.1.tar.gz
- XMLのほうは、DTD関連の読み込みでエラーがでるので後回しに・・・
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.w3c.dom.*;
import org.apache.xerces.parsers.*;
import org.xml.sax.*;
class DomParseDemo2 {
public static void main(String[] args) {
try {
// DOMパーサの生成
DOMParser parser = new DOMParser();
// エラー・ハンドラの登録
parser.setErrorHandler(new MyHandler());
// XML文書の取得
//parser.parse(args[0]);
//parser.parse("http://rss.yomiuri.co.jp/rss/yol/topstories");
parser.parse("http://rss.asahi.com/f/asahi_newsheadlines");
// Documentインスタンスの取得
Document doc = parser.getDocument();
if( doc.getNodeType() == Node.DOCUMENT_NODE ){
System.out.println("This is Document!");
}
Node child = doc.getFirstChild();
System.out.println(child.getNodeName());
NodeList gchildren = doc.getChildNodes();
for (int i = 0; i < gchildren.getLength(); i++) {
Node gchild = gchildren.item(i);
System.out.println("Name: " + gchild.getNodeName());
}
//ArrayListのテスト
List hs1 = new ArrayList(); //(1)ArrayListオブジェクトの生成
for (int i = 0; i < 10; i++) {
hs1.add(new Integer(i)); //(2)要素の追加
}
System.out.println("ArrayListの要素" + hs1); //(3)要素の表示
List al1 = new ArrayList();
al1.add(hs1);
al1.add(hs1);
System.out.println("ArrayListの要素" + al1); //(5)要素の表示
GetItem01 tmp = new GetItem01(doc);
List Items = tmp.getItem();
System.out.print(Items);
} catch (Exception e) {
e.printStackTrace();
}
}
}
class MyHandler implements ErrorHandler {
public void warning(SAXParseException e) {
System.out.println("警告: " + e.getLineNumber() +"行目");
System.out.println(e.getMessage());
}
public void error(SAXParseException e) {
System.out.println("エラー: " + e.getLineNumber() +"行目");
System.out.println(e.getMessage());
}
public void fatalError(SAXParseException e) {
System.out.println("深刻なエラー: " + e.getLineNumber() +"行目");
System.out.println(e.getMessage());
}
}
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class GetItem01 {
protected Document doc;
protected List hs;
protected List retTable;
public GetItem01(Document inDoc){
doc = inDoc;
retTable = new ArrayList();
}
protected void internalFn1(Node child, boolean itemFlag){
NodeList children = child.getChildNodes();
for (int i = 0; i < children.getLength(); i++) {
if( itemFlag && children.item(i).getNodeName() == "title" ){
hs = new ArrayList();
hs.add("title");
hs.add(children.item(i).getChildNodes().item(0).getNodeType());
hs.add(children.item(i).getTextContent());
//System.out.println(hs);
} else if( itemFlag && children.item(i).getNodeName() == "link" ){
hs.add("link");
hs.add(children.item(i).getTextContent());
//System.out.println(hs);
} else if( children.item(i).getNodeType() == Node.TEXT_NODE ){
//
} else{
//System.out.println("Name: " + children.item(i).getNodeName());
if(children.item(i).getNodeName() == "item" ){
internalFn1(children.item(i), true);
//System.out.print(hs.get(1));
if( Integer.valueOf(hs.get(1).toString()) == Node.TEXT_NODE ){
retTable.add(hs);
}
itemFlag = false;
} else{
internalFn1(children.item(i), itemFlag);
}
}
}
return;
}
public List getItem(){
NodeList children = doc.getChildNodes();
for( int i=0; i < children.getLength(); i++ ){
System.out.println("Name: " + children.item(i).getNodeName());
internalFn1(children.item(i), false);
}
//System.out.print(retTable);
return retTable;
}
}
R備忘録 /状態空間モデリング/donlp2/その他のメモ