Использование scala:
import xml._
val xml = XML.loadString("<tag><nested>hello</nested></tag>")
val formatted = new PrettyPrinter(150, 2).format(xml)
println(formatted)
Вы можете сделать это и на Java, если вы зависите от scala-library.jar. Это выглядит так:
import scala.xml.*;
public class FormatXML {
public static void main(String[] args) {
String unformattedXml = "<tag><nested>hello</nested></tag>";
PrettyPrinter pp = new PrettyPrinter(150, 3);
String formatted = pp.format(XML.loadString(unformattedXml), TopScope$.MODULE$);
System.out.println(formatted);
}
}
Объект PrettyPrinter
сконструирован с двумя ints, первая - макс длина строки, а вторая - шаг отступа.
Проблема в том, что ваш обработчик щелчков устанавливает значение expanded
в значение , а затем обработчик событий щелчка документа устанавливает его в значение false, поэтому всегда ложно.
Вы можете установить значение false только в том случае, если целью события не является ваш компонент:
https://stackblitz.com/edit/mouse-click-anywhere-8bwg6p?file=src/ app / hello.component.ts
@HostListener('document:click', ['$event'])
documentClick(event: MouseEvent) {
console.log('clicked');
console.log(event);
if (event.target.id !== 'box') {
this.isEnlarged = false;
}
}