Java에서 XML 문자열 형식 지정
Java 개발자로서 줄바꿈이 없거나 XML 문자열이 있는 상황에 직면할 수 있습니다. 들여쓰기를 하고 이를 형식이 좋은 문자열로 변환해야 합니다. 이는 디버깅 목적이나 읽기 쉬운 방식으로 XML 데이터를 표시하는 데 특히 유용합니다.
이 작업을 수행하려면 JAXP(Java API for XML 처리) 및 DOM(문서 개체 모델)을 활용하여 XML 문자열을 형식화된 표현으로 변환합니다.
먼저 TransformerFactory에서 새 Transformer 객체를 생성합니다. 줄 바꿈 및 들여쓰기를 활성화하려면 "INDENT" 및 "{http://xml.apache.org/xslt}indent-amount" 속성을 각각 "yes" 및 "2"로 설정합니다.
Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
다음으로 XML 문자열을 DOMSource 개체로 변환합니다.
String inputXml = "<tag><nested>hello</nested></tag>"; DOMSource source = new DOMSource(DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(inputXml))));
그런 다음 형식이 지정된 XML을 보관할 StreamResult 개체를 만듭니다. 문자열:
StreamResult result = new StreamResult(new StringWriter());
마지막으로 변환기를 사용하여 소스 DOM을 형식이 지정된 XML 문자열로 변환합니다.
transformer.transform(source, result);
result.getWriter() 객체에는 형식이 지정된 XML이 포함됩니다. 문자열:
String formattedXml = result.getWriter().toString();
예:
String unformattedXml = ""; Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); DOMSource source = new DOMSource(DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(new StringReader(unformattedXml)))); StreamResult result = new StreamResult(new StringWriter()); transformer.transform(source, result); System.out.println(result.getWriter().toString()); hello
출력:
<?xml version="1.0" encoding="UTF-8"?> <tag> <nested>hello</nested> </tag>
위 내용은 JAXP 및 DOM을 사용하여 Java에서 형식화되지 않은 XML 문자열의 형식을 지정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!