2016-09-19 9 views
0

私は文字列を持っており、有効なCSS値であるかどうかを検証したいと思います。 AntiSamyのドキュメントでは、CSSValidator.isValidProperty(http://javadox.com/org.owasp/antisamy/1.4/org/owasp/validator/css/CssValidator)を使用することができます。ただし、2番目のパラメータの型にはLexicalUnitが必要です。AntiSamyを使ったCSS検証

AnitSamyで文字列を検証する別の方法はありますか?

答えて

0

あなたが望むのはCssScannerだと思います。

/****** pull out style tag from html *****/ 
Pattern p = Pattern.compile("<style>([\\s\\S]+?)</style>"); 
Matcher m = p.matcher(validHTML); 

// if we find a match, get the group 
if (m.find()) { 

// get the matching group 
    codeGroup = m.group(1); 
} 
/****** block for checking all css for validity *****/ 

InternalPolicy policy = null; 
try { 
    policy = (InternalPolicy) InternalPolicy.getInstance("antisamy-ebay.xml"); 
} catch (PolicyException e) { 
    e.printStackTrace(); 
} 
ResourceBundle messages = ResourceBundle.getBundle("AntiSamy", Locale.getDefault()); 

CssScanner scanner = new CssScanner(policy, messages); 
CleanResults results = scanner.scanStyleSheet(codeGroup, Integer.MAX_VALUE); 
validCSS = results.getCleanHTML().toString(); 

これは私のために働くコードの一部です。これがあなたのためにはうまくいかない場合は私に教えてください、私もここでhtmlの検証を扱っているので、私は変数のコードの先頭に宣言している。したがって、このコードには変数がありません。しかし、それは正しい方向にあなたを指す必要があります。また、適切なポリシーが必要です。私はebayポリシーを選択しました。これは、CSSが出力結果を許可するホワイトリストをガイドします。私はCssValidatorを使用していないので、どのように比較するのか分かりませんが、CssScannerはクリーンなCSSを返す素晴らしい仕事をしています。

関連する問題