Css Apache蜡染中的querySelector

Css Apache蜡染中的querySelector,css,dom,batik,Css,Dom,Batik,我想在ApacheBatikDOM中查询与CSS选择器匹配的元素 Batik是否提供了以下任何浏览器DOM方法的替代方法 好的,这是我设法组合起来的解决方案。它是用Clojure而不是Java编写的,但重要的是: 实例化org.apache.batik.css.engine.sac.css条件工厂 实例化org.apache.batik.css.parser.parser 调用Parser.parseSelectors 调用org.apache.batik.dom.traversal.

我想在ApacheBatikDOM中查询与CSS选择器匹配的元素

Batik是否提供了以下任何浏览器DOM方法的替代方法


好的,这是我设法组合起来的解决方案。它是用Clojure而不是Java编写的,但重要的是:

  • 实例化org.apache.batik.css.engine.sac.css条件工厂
  • 实例化org.apache.batik.css.parser.parser
  • 调用Parser.parseSelectors
  • 调用org.apache.batik.dom.traversal.TraversalSupport.createNodeIterator
  • 在NodeFilter中,在已解析的SelectorList上迭代,调用ExtendedSelector.match
  • 有条件地跳过从迭代器返回的第一个节点(它始终是遍历根)
  • (定义:私有条件工厂)
    (CSSConditionFactory.nil“class”nil“id”))
    (defn-解析选择器[选择器]
    (让[parser(parser.)]
    (doto)解析器
    (.setSelectorFactory CSS选择器工厂/实例)
    (.setConditionFactory条件工厂))
    (.parseSelectors解析器选择器)))
    (defn-匹配?
    ([选择器元素](匹配?选择器元素“”)
    ([选择器元素伪]
    (让[length(.getLength选择器)]
    (循环[i0]
    (如果(