2012-07-08 11 views
6

jsoup要素を元のHTMLの特定の文字オフセットにマップする必要があります。私はこのようになりますHTML持っている言い換えれば、:jsoupの要素の文字オフセットを取得

Hello <br/> World 

を私は「こんにちは」から始まることを知っておく必要がありオフセット0と6文字の長さを有し、時<br/>開始は6オフセットと長さを持っています5文字など。

この情報を返すElement javadoc内にゲッターが見つかりませんでした。それは取り戻すことができますか?

+0

あなた自身の文法を書いた結果ではなかったこの解決策を見つけましたか? – elaRosca

+0

いいえ、まだjflexを使用しています。 – ccleve

答えて

0

私はJsoupがこの機能を持っているとは思わない。この質問は、HTML解析よりも字句解析に近いと思われます。

私は文法を書いて、その文法に対してレクサーを書いてHTMLをトークン化し、あなたが探しているオフセットを供給します。

まず、Jsoupでドキュメントを解析し、有効なHTMLであることを確認します。

次に、文法に対して文書を字句解析します。文法は見えるかもしれませんように:

Document := {optional-opening-tag} | {literal} {optional-opening-tag} | {optional-closing-tag} 

optional-opening-tag := ["<" {literal} ">" {optional-opening-tag}|{literal} ] | "" 

optional-closing-tag := "</ {literal} ">" | "" 

literal := any string of characters not beginning with whitespace, or containing "<" 

挿入しますトークン、最初の文字のインデックス、および長さを格納するオブジェクトで見つける各トークン。

+0

はい、これは正しい答えです。私は実際にJFlexを使ってレクサーを書いていましたが、まだ動作していますが、私はまだそれを使用していますが、私はむしろそれを維持しません。私はコードを取り除こうとしていました。 – ccleve

関連する問題