問題タブ [jtidy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android での HTML の解析、主要なパフォーマンスの問題
約 100 kB の HTML データを解析する必要がありますが、これは単に Android で大きなパフォーマンスの問題を引き起こします。組み込みの XML パーサーと JTidy の両方を試しました。
組み込みの XML パーサーを使用すると、約 0.5 秒の解析時間が得られます。問題は、XML パーサーを使用して乱雑な HTML コードを解析するのは良くないということです。これはオプションではありません。(私は前処理を試みましたが、有効な HTML について不平を言い始めたので...)
少しググったところ、XMLパーサーに渡す前にコードをクリーンアップするためにJTidyが提案されました。これは絶対的な悪夢でした。JTidy による前処理の解析に約7 秒かかるようになりました。
だから今、私の唯一の選択肢は本当に正規表現です。どう思いますか?
jtidy - NekoHTML (または JTidy) + XOM でコメントがエスケープされる
私は NekoHTML を使用して一部の HTML をクリーンアップし、それを XOM にフィードしてオブジェクト モデルを取得しています。この過程のどこかで、コメントがエスケープされています。
入力 HTML の関連する例を次に示します (<head>
わかりやすくするためにほとんどをカットしています)。
コードは次のとおりです。
対応する出力は次のとおりです。
XOM ドキュメントから script 要素を抽出すると、既にマングルされているように見えます (SCRIPT 要素にはText
子ノードとして 1 つのノードがあり、期待されるシーケンスではありTexts
ませComments
ん)。Serializer
.
さて、改行が保持されるとは思っていません。実際、とにかくスクリプトタグを捨てるつもりですが、コメントを保持したい、または少なくともできるようにしたい場所が他にもあります。エスケープされたコメントが埋め込まれていないテキストを取得します。
何か案は?
更新: NekoHTML がいくつかのタグを壊していたので、JTidy に切り替えましたが、同じ問題が発生しました。ただし、興味深いことに、これはヘッダー内のスクリプト タグだけの問題です。他のコメントは問題なく届きます。そして、JTidy のせいだと私が疑う (願って祈る) 奇妙な追加の JavaScript コメントがあります。
JTidy が行っていることは、<script>
内容を CDATA に変換しているように見えます。JTidy の生の出力を stdout に送信すると、次のようになります。
java - JTidyを使用したリンクの解析
現在、JTidyを使用してHTMLドキュメントを解析し、指定されたHTMLドキュメント内のすべてのアンカータグのコレクションをフェッチしています。次に、各タグのhref属性の値を抽出して、ページ上のリンクのコレクションを作成します。
残念ながら、これらのリンクはいくつかの異なる方法で表現できます。いくつかの絶対的な(http://www.example.com/page.html
)、いくつかの相対的な( /page.html
、、、page.html
または../page.html
)。さらに、一部は単なるアンカー(#paragraphA
)になります。ブラウザで自分のページにアクセスすると、リンクをクリックした場合にこれらのさまざまなhref値を処理する方法が自動的に認識されますが、プログラムでHTTPClientを使用してJTidyから取得したこれらのリンクのいずれかをたどる場合は、最初に提供する必要があります有効なURL(たとえば、最初に/page.html、page.html、およびhttp://www.example.com/page.htmlをhttp://www.example.com/page.htmlに変換する必要があります) 。
JTidyであろうと他の場所であろうと、これを実現できる組み込み機能はありますか?または、これらの異なるURLを絶対URLに変換するために、独自のルールを作成する必要がありますか?
java - DIV HTML 内の要素をトラバースまたは検索する最速の方法
動的ページの URL をヒットし、コンテンツを取得し、さまざまなネストされた div タグで特定の div タグを検索し、コンテンツを取得するユーティリティを作成しています。
主に、Java コード/ライブラリを探しています。JavaScript または JavaScript ベースのライブラリも機能します。
私は以下を最終候補に挙げました -> JSoup、Jerry、JTidy (最終更新日 2009-12-01)。パフォーマンス的にはどちらが優れていますか?
編集:質問を言い換えました。候補ライブラリを追加しました。
java - Jtidyのエラーログを削除するには?
jtidy には以下のコードを使用します。
すべての警告ログを削除できますが、それでも以下のエラー ログが表示されます
上記のエラーを削除するにはどうすればよいですか? そして、設定ファイルで「show-errors = 0」を設定しても機能しないようです。何かアイデアはありますか? ありがとう!
jtidy.config:
html-entities - jtidy が漢字を html エンティティに変換しないようにするにはどうすればよいですか?
jtidy で変換する html がいくつかあります。これにはいくつかの漢字が含まれています。
しかし、結果は次のようになります。
jtidy を設定して、漢字を html エンティティに変換しないようにする方法は?
java - jTidy は HTML を整頓した後に何も返さない
(Android で) jTidy を使用しているときに、非常に厄介な問題に遭遇しました。jTidy は、テストしたすべての HTML ドキュメントで動作することがわかりました。ただし、次の例外があります。
しかし、整理した後、jTidy は何も返しません (整理された HTML を含む文字列が結果と呼ばれる場合、result.equals("") == true のように)
ただし、非常に興味深いことに気付きました。HTML の本文部分をすべて削除すると、jTidy は完全に機能します。<body></body> に jTidy が気に入らないものはありますか?
私が使用しているJavaコードは次のとおりです。
私のJavaに何か問題がありますか?これは jTidy のエラーですか? jTidyにこれをさせないようにする方法はありますか? (HTML を変更することはできません)。これが絶対に修正できない場合、他に優れた HTML Tidiers はありますか? どうもありがとう!
html - JTidyに新しいタグを追加するにはどうすればよいですか?
(実世界の)HTMLからデータを抽出するためにjTidyを使用しようとしていますが、jTidyはカスタムタグを解析しません。
カスタムタグ間のテキストを取得できません。xpathを使用するため、jTidyを使用する必要があります。
HTMLCleanerを試しましたが、完全なxpath関数をサポートしていません。
dom - org.w3c.dom.Document を org.jdom.Document に変換する方法
をに変換する必要がありorg.w3c.dom.Document
ます org.jdom.Document
私は次の次のことを試しました..
domBuilder.build(tidyDOM)
次の例外をスローします。
java - w3c HTML Validatorで使用されるJTidy(HTML-Tidy)構成
JTidy(HTML TidyライブラリのJavaポート)を使用して、いくつかの既存のサイトをスクラブしています。私がJTidyの構成を使用したとき、それは非常に厳密であるように思われ、ページの下部を切り落としてしまいます(マークアップが悪い)。
w3c HTMLバリデーターツールのみを使用して同じマークアップを実行すると、クリーンアップされますが、書き換えがよりインテリジェントになります。タグを切り落とす代わりに、欠落しているタグがどこにあるかをインテリジェントに推測し、それに応じて構造を更新するようです。
w3cが使用するHTML-Tidy構成を知っている人はいますか?
私のjtidy構成は次のとおりです。