我正在评估batik css解析器以将其与我们的产品集成。为了最好地使用它我想要了解其所有类所代表的内容。我无法理解org.apache.batik.css.engine.CSSEngine类的用途。这个课程使用的是什么。
答案 0 :(得分:0)
CSSEngine类有一个函数parseStyleSheet,它返回一个StyleSheet对象。这个StyleSheet对象实际上是css的dom表示。
StyleSheet ss = cssEngine.parseStyleSheet(new ParsedURL("file:///"+filename),"max-width: 800px");
您可以通过扩展CSSEngine类来创建自己的cssengine。
public class MyCSSEngine extends CSSEngine{
public MyCSSEngine (ExtendedParser parser) {
super(null, null, parser, MY_VALUE_MANAGERS, SVGCSSEngine.SVG_SHORTHAND_MANAGERS, null, null, "style",
null,
"class",
true,
null,
new MyCSSContext());
// TODO Auto-generated constructor stub
}
}
通过扩展org.apache.batik.css.engine.CSSContext来创建MyCSSContext。 来到MY_VALUE_MANAGERS这很重要。价值经理可以像
public static final ValueManager[] MY_VALUE_MANAGERS = {
new AlignmentBaselineManager(),
new BaselineShiftManager(),
new ClipManager(),
new ClipPathManager(),
new ClipRuleManager(),
new ColorManager(),
new ColorInterpolationManager(),
new ColorInterpolationFiltersManager(),
new ColorProfileManager(),
new ColorRenderingManager()
}
它基本上在解析时注册你感兴趣的属性。(远不止于此)。
您也可以使用org.apache.batik.css.engine.SVGCSSEngine.SVG_VALUE_MANAGERS,但实现自己的值管理器可以让您有权处理自己的自定义css属性,例如
-my-own-color:mufunc(10,23,45)