public void startSelector(SelectorList selectors) throws CSSException { CssRule r; if (nextSelectorCreatesRule) { r = new CssRule(); addNode(r); currentRule = r; } else { r = (CssRule) currentRule; nextSelectorCreatesRule = true; } for (int i = 0; i < selectors.getLength(); i++) { r.getSelectors().add(new CssSelector(valueOf(selectors.item(i)))); } }
public void startSelector(SelectorList selectors) throws CSSException { for (int i = 0; i < selectors.getLength(); i++) { Selector selector = selectors.item(i); if (i > 0) _buffer.append(','); _buffer.append(selector.toString()); } _buffer.append("{"); }
public void startSelector(SelectorList selectors) throws CSSException { for (int i = 0; i < selectors.getLength(); i++) { Selector selector = selectors.item(i); if (i > 0) _buffer.append(','); _buffer.append(selector.toString()); } _buffer.append("{"); }
public void startSelector(SelectorList selectors) throws CSSException { for (int i = 0; i < selectors.getLength(); i++) { Selector selector = selectors.item(i); if (i > 0) _buffer.append(','); _buffer.append(selector.toString()); } _buffer.append("{"); }
private static String toString( SelectorList patterns ) { StringBuilder buffer = new StringBuilder(); buffer.append( "[" ); int length = patterns.getLength(); for( int i = 0; i < length; i++ ) { buffer.append( " " ); Selector selector = patterns.item( i ); buffer.append( selector.toString() ); } buffer.append( " ]" ); return buffer.toString(); }
public void startSelector(SelectorList selectors) throws CSSException { for (int i = 0; i < selectors.getLength(); i++) { Selector selector = selectors.item(i); if (i > 0) _buffer.append(','); _buffer.append(selector.toString()); } _buffer.append("{"); }
private List<W3cCssSelectorWithMap> createParsedSelectorList() { List<W3cCssSelectorWithMap> w3cCssSelectorWithMapList = new LinkedList<>(); for (int i = 0; i < selectorList.getLength(); i++) { W3cCssSelectorWithMap w3cCssSelectorWithMap = new W3cCssSelectorWithMap(selectorList.item(i), this.argumentMap); w3cCssSelectorWithMapList.add(w3cCssSelectorWithMap); } return w3cCssSelectorWithMapList; }
private List<W3cCssSelectorWithMap> createParsedSelectorList() { List<W3cCssSelectorWithMap> w3cCssSelectorWithMapList = new LinkedList<>(); for (int i = 0; i < selectorList.getLength(); i++) { W3cCssSelectorWithMap w3cCssSelectorWithMap = new W3cCssSelectorWithMap(selectorList.item(i), this.argumentMap); w3cCssSelectorWithMapList.add(w3cCssSelectorWithMap); } return w3cCssSelectorWithMapList; }
public static String toString(SelectorList selectorList) { StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < selectorList.getLength(); i++) { String selectorString = toString(selectorList.item(i)); stringBuilder.append(selectorString); if (selectorList.getLength() > i + 1) { stringBuilder.append(", "); } } return stringBuilder.toString(); }
private List<CompiledCssSelector> compileCssSelector(String selector) { W3cCssSelectorListWithMap w3cCssSelectorListWithMap = W3cCssSelectorWithMapParser.parseSelector(selector); SelectorList selectorList = w3cCssSelectorListWithMap.getSelectorList(); ArgumentMap argumentMap = w3cCssSelectorListWithMap.getArgumentMap(); List<CompiledCssSelector> compiledCssSelectors = new ArrayList<>(); for (int i = 0; i < selectorList.getLength(); i++) { Selector parsedSimpleSelector = selectorList.item(i); boolean hasNegatedPresent = hasNegatedPresent(argumentMap, parsedSimpleSelector.toString()); CssSelector<Selector, TagComponent> cssSelector = CssSelectorFactory.parsedSelectorToCssSelector(parsedSimpleSelector); compiledCssSelectors.add(new CompiledCssSelector(cssSelector, hasNegatedPresent, argumentMap, parsedSimpleSelector)); } return compiledCssSelectors; }
private List<CompiledCssSelector> compileCssSelector(String selector) { W3cCssSelectorListWithMap w3cCssSelectorListWithMap = W3cCssSelectorWithMapParser.parseSelector(selector); SelectorList selectorList = w3cCssSelectorListWithMap.getSelectorList(); ArgumentMap argumentMap = w3cCssSelectorListWithMap.getArgumentMap(); List<CompiledCssSelector> compiledCssSelectors = new ArrayList<>(); for (int i = 0; i < selectorList.getLength(); i++) { Selector parsedSimpleSelector = selectorList.item(i); boolean hasNegatedPresent = hasNegatedPresent(argumentMap, parsedSimpleSelector.toString()); CssSelector<Selector, TagComponent> cssSelector = CssSelectorFactory.parsedSelectorToCssSelector(parsedSimpleSelector); compiledCssSelectors.add(new CompiledCssSelector(cssSelector, hasNegatedPresent, argumentMap, parsedSimpleSelector)); } return compiledCssSelectors; }
public void property(String name, LexicalUnit value, boolean important) throws CSSException { CSSProperty property = new CSSProperty(name.intern(), value, important); SACMediaList mediaList = getCurrentMedia(); int selectorCount = curSelectors.getLength(); for(int i = 0; i < selectorCount; i++) { ExtendedSelector selector = (ExtendedSelector)curSelectors.item(i); stylesheet.addRule(new CSSRule(selector, property, mediaList)); } }
public void startSelector(SelectorList selectors) throws CSSException { CssRule r; if (nextSelectorCreatesRule) { r = new CssRule(); addNode(r); currentRule = r; } else { r = (CssRule) currentRule; nextSelectorCreatesRule = true; } for (int i = 0; i < selectors.getLength(); i++) { r.getSelectors().add(new CssSelector(valueOf(selectors.item(i)))); } }
public void startSelector(SelectorList selectors) throws CSSException { CssRule r; if (nextSelectorCreatesRule) { r = new CssRule(); addNode(r); currentRule = r; } else { r = (CssRule) currentRule; nextSelectorCreatesRule = true; } for (int i = 0; i < selectors.getLength(); i++) { r.getSelectors().add(new CssSelector(valueOf(selectors.item(i)))); } }
protected void doneParsing() throws SAXException { super.doneParsing(); try { final NamespaceCollection namespaceCollection = StyleSheetParserUtil.getInstance().getNamespaceCollection(); final SelectorList selectorList = StyleSheetParserUtil.getInstance().parseSelector( namespaceCollection, getResult() ); for ( int i = 0; i < selectorList.getLength(); i += 1 ) { selector.add( (CSSSelector) selectorList.item( i ) ); } } catch ( CSSParseException e ) { throw new ParseException( "Failed to parse selector", e, getLocator() ); } }
public static TagComponent selectorToExpression(String selector) { W3cCssSelectorListWithMap cssParsedSelectors = W3cCssSelectorWithMapParser.parseSelector(selector); SelectorList selectorList = cssParsedSelectors.getSelectorList(); return XPathComponentCompilerService.compileSelector(cssParsedSelectors.getArgumentMap(), selectorList.item(0)); }
public void testParsing() throws Exception { final NamespaceCollection namespaceCollection = StyleSheetParserUtil.getInstance().getNamespaceCollection(); final SelectorList selectorList = StyleSheetParserUtil.getInstance().parseSelector( namespaceCollection, "h1.test[x-lang=\"fr'\\\"\"]" ); for ( int i = 0; i < selectorList.getLength(); i += 1 ) { CSSSelector item = (CSSSelector) selectorList.item( i ); System.out.println( item.print( namespaceCollection ) ); } }
public void testParsingClass() throws Exception { final NamespaceCollection namespaceCollection = StyleSheetParserUtil.getInstance().getNamespaceCollection(); final SelectorList selectorList = StyleSheetParserUtil.getInstance().parseSelector( namespaceCollection, ".\\aa test" ); for ( int i = 0; i < selectorList.getLength(); i += 1 ) { CSSSelector item = (CSSSelector) selectorList.item( i ); System.out.println( item.print( namespaceCollection ) ); } }
@Test public void testConditionToXPath() { W3cCssSelectorListWithMap w3cCssSelectorListWithMap = W3cCssSelectorWithMapParser.parseSelector("#idz"); SelectorList selectorList = w3cCssSelectorListWithMap.getSelectorList(); Selector selector = selectorList.item(0); CssSelector<Selector, TagComponent> cssSelector = CssSelectorFactory.parsedSelectorToCssSelector(selector); TagComponent tagComponent = cssSelector.toXPath(w3cCssSelectorListWithMap.getArgumentMap(), selector); assertThat(tagComponent.toXPath(), Matchers.is("(.//*[@id = 'idz'])")); assertThat(tagComponent.toXPathCondition(), Matchers.is("@id = 'idz'")); }
@Test public void testConditionToXPath() { W3cCssSelectorListWithMap w3cCssSelectorListWithMap = W3cCssSelectorWithMapParser.parseSelector("span.a.b"); SelectorList selectorList = w3cCssSelectorListWithMap.getSelectorList(); ConditionalSelector selector = (ConditionalSelector) selectorList.item(0); ArgumentMap argumentMap = w3cCssSelectorListWithMap.getArgumentMap(); SimpleSelector simpleSelector = selector.getSimpleSelector(); TagComponent spanTagComponent = XPathComponentCompilerService.compileSelector(argumentMap, simpleSelector); CombinatorCondition combinatorCondition = (CombinatorCondition) selector.getCondition(); ConditionComponent compiledCondition = andConditionalCssSelector.conditionToXPath(argumentMap, simpleSelector, combinatorCondition); TagComponent cs = spanTagComponent.cloneAndCombineTo(compiledCondition); assertThat(cs.toXPath(), is("(.//*[self::span and contains(concat(' ', normalize-space(@class), ' '), ' a ') and contains(concat(' ', normalize-space(@class), ' '), ' b ')])")); assertThat(cs.toXPathCondition(), is("local-name() = 'span' and contains(concat(' ', normalize-space(@class), ' '), ' a ') and contains(concat(' ', normalize-space(@class), ' '), ' b ')")); }