// 下階層用テンプレート #topicpath ---- //ここにコンテンツを記述します。 [[XJavaDoc>http://xdoclet.sourceforge.net/xjavadoc/]]はXDocletでも使用されている、JavaDocをパースするエンジンです。[[EclipseのJavaDocパーサ>Eclipse/プラグイン開発のTIPS集/ソースコードを解析するパーサASTParser#p8538c5a]]がどうもタコな動きをする(失礼っ)ので、なんかいいのないかなあと探してたらこれに行き着きました。Eclipseのパーサは ASTVisitor#visit(Javadoc node) でJavaDocインスタンスを取得しそこからJavaDocを解析するのですが、 @spring.bean id = "hogehoge.Hoge" singleton="false" などの記述をうまくパースする方法がわかりませんでした((使い方が悪い??))。idの値であるhogehoge.Hogeだけを取得することができないようでした。 そこでこれを使ってみたのですが、とても簡単にJavaDocを解析することができました。 **インストール [#ye886844] サイトを見てもダウンロードできるリンクはないようだったので、XDocletに同梱されている xjavadoc-1.1.jar を使用することにしました。また、commons-logging.jar も必要ですね。 **やってみる [#c62b9993] -対象のJavaDocコメント /** * Hogeクラス * * @spring.bean id = "hogehoge.Hoge" singleton="false" * @version $Revision: 1.1 $ * @author Masatomi KINO */ -プログラム String javadoc = "/**\n" + " * Hogeクラス\n" + " * \n" + " * @spring.bean id = \"hogehoge.Hoge\" singleton=\"false\"\n" + " * @version $Revision: 1.1 $\n" + " * @author Masatomi KINO\n" + " */\n"; Token token = Token.newToken(0); token.image = javadoc; XDoc doc = new XDoc(token, null, new XTagFactory()); System.out.println(doc); XTag tag = doc.getTag("spring.bean"); System.out.println(tag); System.out.println(tag.getAttributeValue("id")); System.out.println(tag.getAttributeValue("singleton")); 実行結果: /** * Hogeクラス * * @spring.bean * id="hogehoge.Hoge" * singleton="false" * @version $Revision: 1.1 $ * @author Masatomi KINO */ xjavadoc.DefaultXTag@52198af1 hogehoge.Hoge false **@author hogehgoeみたいな場合のパース方法 [#s4672c87] 上の例は @spring.bean id="hogehoge.Hoge" singleton="false" などのように@タグ内に key=value がある形式でしたが @author hogehgoe のように@タグとvalueのみの場合は Tag tag = doc.getTag("author"); System.out.println(tag.getValue()); などのようにするだけです。簡単ですね。 ---- この記事は #vote(おもしろかった[1],そうでもない[0]) #comment #topicpath SIZE(10){現在のアクセス:&counter;}