0

jStyleParserライブラリ(CSSBoxプロジェクトの一部)を使用して、一般的なWebページのcssを分析し、すべてのcss情報をそのページのDOMにバインドしようとしています。私の目標は、Webページが与えられた場合に、ノードごとに、ノードに関連付けられているすべてのcss情報を取得できるようにDOMツリーを作成することです。

これは私のコード(の一部)です:

System.out.println("Analizing "+Mylocalfile.getAbsolutePath()); 
StyleSheet ss = CSSFactory.parse(Mylocalfile.getAbsolutePath(), "UTF-8");
if (ss.isEmpty()) System.out.println("StyleSheet is void");    

parseメソッドはファイルを解析できないようです。StyleSheetssは実際には無効です。

なぜなのかご存知ですか?

4

1 に答える 1

1

MyLocalFileがCSSスタイルシート(* .css)を指している限り、コードは正しいです。その場合、ssで解析されたスタイルシートを取得する必要がありますが、それはどのDOMにもバインドされていません。それでも空のスタイルシートを取得する場合は、CSSコードまたはパーサーにバグがある可能性があります。その場合は、SourceForgeのjStyleParserフォーラムに報告することをお勧めします。

スタイル定義をDOMに割り当てる場合(MyLocalFileはHTMLファイルを指す)、jStyleParserのマニュアルで説明されているようにassignDOMメソッドを使用する必要があります。その場合は、DOMパーサーを使用してHTMLドキュメントを解析し、assignDOMメソッドを使用して、参照されているスタイルシートを自動的に取得し、要素のスタイルを計算する必要があります。jStyleParserソースパッケージのsrc/test/DOMAssign.javaに例があります。

于 2012-08-10T10:56:40.530 に答える