本文整理汇总了Java中com.helger.css.decl.visit.CSSVisitor类的典型用法代码示例。如果您正苦于以下问题:Java CSSVisitor类的具体用法?Java CSSVisitor怎么用?Java CSSVisitor使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
CSSVisitor类属于com.helger.css.decl.visit包,在下文中一共展示了CSSVisitor类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: readFromStyleAttributeWithVisitor
import com.helger.css.decl.visit.CSSVisitor; //导入依赖的package包/类
public static void readFromStyleAttributeWithVisitor ()
{
final String sStyle = "color:red; background:fixed !important";
final CSSDeclarationList aDeclList = CSSReaderDeclarationList.readFromString (sStyle, ECSSVersion.CSS30);
if (aDeclList == null)
throw new IllegalStateException ("Failed to parse CSS: " + sStyle);
// Create a custom visitor
final ICSSVisitor aVisitor = new DefaultCSSVisitor ()
{
@Override
public void onDeclaration (@Nonnull final CSSDeclaration aDeclaration)
{
System.out.println (aDeclaration.getProperty () +
": " +
aDeclaration.getExpression ().getAsCSSString (new CSSWriterSettings (ECSSVersion.CSS30)) +
(aDeclaration.isImportant () ? " (important)" : " (not important)"));
}
};
CSSVisitor.visitAllDeclarations (aDeclList, aVisitor);
}
示例2: readAllSelectors
import com.helger.css.decl.visit.CSSVisitor; //导入依赖的package包/类
public void readAllSelectors ()
{
final String sStyle = "blockquote p,\r\n" +
"blockquote ul,\r\n" +
"blockquote ol {\r\n" +
" line-height:normal;\r\n" +
" font-style:italic;\r\n" +
"}\r\n" +
"\r\n" +
"a { color:#FFEA6F; }\r\n" +
"\r\n" +
"a:hover { text-decoration:none; }\r\n" +
"\r\n" +
"img { border:none; }";
final CascadingStyleSheet aCSS = CSSReader.readFromString (sStyle, ECSSVersion.CSS30);
final ICommonsList <String> aAllSelectors = new CommonsArrayList <> ();
CSSVisitor.visitCSS (aCSS, new DefaultCSSVisitor ()
{
@Override
public void onStyleRuleSelector (@Nonnull final CSSSelector aSelector)
{
aAllSelectors.add (aSelector.getAsCSSString (new CSSWriterSettings (ECSSVersion.CSS30)));
}
});
System.out.println (aAllSelectors);
}
示例3: parse
import com.helger.css.decl.visit.CSSVisitor; //导入依赖的package包/类
@Override
public void parse(File cssFile) throws CssParsingException {
final CascadingStyleSheet data = CSSReader.readFromFile(cssFile, CCharset.CHARSET_UTF_8_OBJ, ECSSVersion.CSS30);
if (data == null) {
throw new CssParsingException();
}
CSSVisitor.visitCSS(data, new CssVisitor());
}
示例4: readFromStyleAttributeWithAPI
import com.helger.css.decl.visit.CSSVisitor; //导入依赖的package包/类
public void readFromStyleAttributeWithAPI ()
{
final String sStyle = "@import 'foobar.css';\n" +
"div{background:fixed url(a.gif) !important;}\n" +
"span { background-image:url('/my/folder/b.gif');}";
final CascadingStyleSheet aCSS = CSSReader.readFromString (sStyle, ECSSVersion.CSS30);
CSSVisitor.visitCSSUrl (aCSS, new DefaultCSSUrlVisitor ()
{
// Called for each import
@Override
public void onImport (@Nonnull final CSSImportRule aImportRule)
{
System.out.println ("Import: " +
aImportRule.getLocationString () +
" - " +
getSourceLocationString (aImportRule.getSourceLocation ()));
}
// Call for URLs outside of URLs
@Override
public void onUrlDeclaration (@Nullable final ICSSTopLevelRule aTopLevelRule,
@Nonnull final CSSDeclaration aDeclaration,
@Nonnull final CSSExpressionMemberTermURI aURITerm)
{
System.out.println (aDeclaration.getProperty () +
" - references: " +
aURITerm.getURIString () +
" - " +
getSourceLocationString (aURITerm.getSourceLocation ()));
}
});
}
示例5: readFromStyleAttributeWithAPI
import com.helger.css.decl.visit.CSSVisitor; //导入依赖的package包/类
public void readFromStyleAttributeWithAPI ()
{
final String sStyle = "@import '/folder/foobar.css';\n" +
"div{background:fixed url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9EFBAoYMhVvMQIAAAAtSURBVHicY/z//z8DHoBH+v///yy4FDEyMjIwMDDhM3lgpaEuh7gTEzDiDxYA9HEPDF90e5YAAAAASUVORK5CYII=) !important;}\n" +
"span { background-image:url('/my/folder/b.gif');}";
final CascadingStyleSheet aCSS = CSSReader.readFromString (sStyle, ECSSVersion.CSS30);
CSSVisitor.visitCSSUrl (aCSS, new DefaultCSSUrlVisitor ()
{
// Called for each import
@Override
public void onImport (@Nonnull final CSSImportRule aImportRule)
{
System.out.println ("Import: " + aImportRule.getLocationString ());
}
// Call for URLs outside of URLs
@Override
public void onUrlDeclaration (@Nullable final ICSSTopLevelRule aTopLevelRule,
@Nonnull final CSSDeclaration aDeclaration,
@Nonnull final CSSExpressionMemberTermURI aURITerm)
{
final CSSURI aURI = aURITerm.getURI ();
if (aURI.isDataURL ())
{
final CSSDataURL aDataURL = aURI.getAsDataURL ();
System.out.println (aDeclaration.getProperty () +
" - references data URL with " +
aDataURL.getContentLength () +
" bytes of content");
}
else
System.out.println (aDeclaration.getProperty () + " - references regular URL: " + aURI.getURI ());
}
});
}
示例6: getEmbeddedResourceURLs
import com.helger.css.decl.visit.CSSVisitor; //导入依赖的package包/类
/**
*
* @see
* org.apache.jmeter.protocol.http.parser.LinkExtractorParser#getEmbeddedResourceURLs
* (java.lang.String, byte[], java.net.URL,
* org.apache.jmeter.protocol.http.parser.URLCollection, java.lang.String)
*/
@Override
public Iterator<URL> getEmbeddedResourceURLs(String userAgent, byte[] data,
final URL baseUrl, String encoding) throws LinkExtractorParseException {
try {
String cssContent = new String(data, encoding);
final CascadingStyleSheet aCSS = CSSReader.readFromStringStream(cssContent,
new CSSReaderSettings()
.setBrowserCompliantMode(true)
.setFallbackCharset(Charset.forName(encoding))
.setCSSVersion (ECSSVersion.CSS30)
.setCustomErrorHandler(new LoggingCSSParseErrorHandler())
.setCustomExceptionHandler (new CustomLoggingCSSParseExceptionCallback(baseUrl)));
final List<URLString> list = new ArrayList<>();
final URLCollection urlCollection = new URLCollection(list);
if(aCSS != null) {
CSSVisitor.visitCSSUrl(aCSS, new DefaultCSSUrlVisitor() {
@Override
public void onImport(final CSSImportRule importRule) {
String location = importRule.getLocationString();
if(!StringUtils.isEmpty(location)) {
urlCollection.addURL(location, baseUrl);
}
}
// Call for URLs outside of URLs
@Override
public void onUrlDeclaration(
final ICSSTopLevelRule aTopLevelRule,
final CSSDeclaration aDeclaration,
final CSSExpressionMemberTermURI aURITerm) {
// NOOP
// Browser fetch such urls only when CSS rule matches
// so we disable this code
//urlCollection.addURL(aURITerm.getURIString(), baseUrl);
}
});
} else {
log.warn("Failed parsing url:"+baseUrl+", got null CascadingStyleSheet");
}
if(log.isDebugEnabled()) {
StringBuilder builder = new StringBuilder();
for (Iterator<URL> iterator = urlCollection.iterator(); iterator.hasNext();) {
URL urlString = iterator.next();
builder.append(urlString).append(",");
}
log.debug("Parsed:"+baseUrl+", got:"+builder.toString());
}
return urlCollection.iterator();
} catch (Exception e) {
throw new LinkExtractorParseException(e);
}
}