Мне нужно преобразовать css String во вложенную s css String. Например, мой ввод css это
.asset {height: 100%;} .asset img {position :lative;}
Я хочу вывод как
.asset {высота: 100%; & img {position :lative;}}
Это код, который я пытаюсь получить,
String css = ".asset {\n" +
" height: 100%;\n" +
"}\n" +
"\n" +
".asset img {\n" +
" position: relative;\n" +
"}";
SCSSDocumentHandlerImpl scssDocumentHandlerImpl = new SCSSDocumentHandlerImpl();
ScssStylesheet stylesheet = scssDocumentHandlerImpl.getStyleSheet();
stylesheet.traverse(new ScssContext());
Parser parser = new Parser();
parser.setErrorHandler(new ErrorHandler() {
@Override
public void warning(CSSParseException exception) throws CSSException {
}
@Override
public void error(CSSParseException exception) throws CSSException {
}
@Override
public void fatalError(CSSParseException exception) throws CSSException {
}
});
parser.setDocumentHandler(scssDocumentHandlerImpl);
Reader isr = new InputStreamReader(IOUtils.toInputStream(css));
InputSource source = new InputSource(isr);
parser.parseStyleSheet(source);
stylesheet.compile();
StringBuilder string = new StringBuilder("");
String delimeter = "\n\n";
List<Node> children = stylesheet.getChildren();
if (children.size() > 0) {
string.append(ScssStylesheet.PRINT_STRATEGY.build(children.get(0)));
}
if (children.size() > 1) {
for (int i = 1; i < children.size(); i++) {
String childString = ScssStylesheet.PRINT_STRATEGY.build(children.get(i));
if (childString != null) {
string.append(delimeter).append(childString);
}
}
}
String content = string.toString();
Но он печатает входную строку. Любая помощь в получении вложенного вывода s css