import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import java.io.ByteArrayInputStream;
import java.nio.charset.StandardCharsets;
public class XmlHelloWorld {
public static void main(String[] args) throws Exception {
String xml = """
<?xml version="1.1" encoding="UTF-8" ?>
<root></root>
""";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// Important settings
factory.setNamespaceAware(true);
// Enable XML 1.1 (Xerces feature exposed via JAXP)
try {
//factory.setFeature("http://apache.org/xml/features/allow-java-encodings", true);
//factory.setFeature("http://apache.org/xml/features/xinclude", false);
} catch (Exception ignored) {}
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(
new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8))
);
String content = doc.getDocumentElement().getTextContent();
System.out.println("Length: " + content.length());
System.out.println("Code points:");
content.codePoints().forEach(cp ->
System.out.printf("U+%04X%n", cp)
);
System.out.println("Raw (may not display visibly):");
System.out.println(content);
}
}