Angles
Fragment identifiers
一些微型语法同样也有一个相应的生产者类,这个类是在解析的同时生成对象的一个处理接口的执行。
2.举例
下面例子用来举例怎么用一个解析器来解析一个点列表
import java.awt.geom.Point2D; import java.util.LinkedList; import java.util.List; import org.apache.batik.parser.DefaultPointsHandler; import org.apache.batik.parser.ParseException; import org.apache.batik.parser.PointsHandler; import org.apache.batik.parser.PointsParser; public class PointsParserExample { public List extractPoints(String s) throws ParseException { final LinkedList points = new LinkedList(); PointsParser pp = new PointsParser(); PointsHandler ph = new DefaultPointsHandler() { public void point(float x, float y) throws ParseException { Point2D p = new Point2D.Float(x, y); points.add(p); } }; pp.setPointsHandler(ph); pp.parse(s); return points; } }
这个例子使用 AWTTransformProducer 类来从一个SVG transform列表中生成一个 AffineTransform 对象:
import java.awt.geom.AffineTransform; import org.apache.batik.parser.AWTTransformProducer; import org.apache.batik.parser.ParseException; import org.apache.batik.parser.TransformListParser; public class TransformParserExample { public AffineTransform parseTransformList(String s) throws ParseException { TransformListParser p = new TransformListParser(); AWTTransformProducer tp = new AWTTransformProducer(); p.setTransformListHandler(tp); p.parse(s); return tp.getAffineTransform(); } }
Clock values
这个解析器被用来解析Fragment identifiers(片断定义)的svg允许的各种格式。
Lengths
解析SVG长度值
Length lists
用来解析逗号或者空格分隔的SVG长度列表。
Numbers
用于解析SVG数字值.
Number lists
用来解析逗号或者空格分隔的SVG数字值.
Path data
通过 PathParser执行, 通过 PathHandler处理. 用来解析 SVG path data, 就象path 元素中的d 属性一样.
Points
通过 PointsParser执行, 通过 PointsHandler处理. 用来解析 point 列表, 就象 polygon 元素中的points 属性那样.
Preserve aspect ratio values (保持屏幕比率值)
通过 PreserveAspectRatioParser执行, 通过 PreserveAspectRatioHandler处理. 用来解析在svg元素中的preserveAspectRatio 属性的值。
Transform lists
通过TransformListParser执行, 通过 TransformListHandler处理.
用来解析transform 列表, 就象在
任意可以变换元素中的变换属性那样。
原文:http://www.cnblogs.com/aimengying/p/3612229.html