質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

0回答

699閲覧

Apacheで閉じタグチェックのHTMLバリデーションができるライブラリはないでしょうか?

pan0008

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/07/17 03:44

前提・実現したいこと

今Java8で入力値のテキストに対して、HTMLバリデーションを実装しています。HTMLタグが入力されている際の開始タグ終了タグチェックです。
たとえば<b>aiueoなら</b>がないのでエラー、aiueo</b>なら<b>がないのでエラー、<b>aiueo</b>ならエラーなしです。

このチェックをApacheグループのライブラリで実現できるものはないでしょうか?
同じことをやりたい人は世界中にいると思うので。

終了タグが必要なタグは候補として出せているので、シンプルに
「開始タグ終了タグ」チェックのロジックを実装したいです。
ただしAPI側の実装なのであくまでJava側での実装になります。

わかる方はいらっしゃいますでしょうか?アイデアやヒント、キッカケ、予想でも構いません。
よろしくお願いいたします。

背景

商品説明のテキストボックスにHTMLも入力できますが、その際のバリデーション機能をつけることを任されています。
ただし、実装する箇所はAPI側なので、Javaでの実装になります。
また正規表現ではじめ実装していましたが、責任者からパフォーマンスの問題から正規表現はやめてほしいと言われました。
チェックしたい内容は
①あらかじめ終了タグが必要な対象のタグはラインナップされており、そのタグの場合終了タグが必要(a,table,bなど)
②終了タグがあり、開始タグがない場合もエラー
③属性やコメントタグに終了タグの文字列が入っているケースも考慮する。チェックしないように。
④入れ子や複数タグがある場合も対応できるようにする

意図

とくに②〜④についてどうしたらできるかなと思いました。
あとはより良い実装方法はないかと思いました。

試したこと

こちらのページを参考にし、実装しています。
http://www5b.biglobe.ne.jp/~taka_2/jclass/Stack.html
ただ終了タグがあって、開始タグがないケースもチェックしたいし、コメントになっている箇所はチェック対象からは外したいので、そのケースをどう追加しようかなと思っています。

https://java-source.net/open-source/html-parsers
またこのページも勉強しています。使えるクラスはないかと。どのように使うのかと。

HTML parserも使ってみました。しかし解決までには至りませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問