> Java > java지도 시간 > JAXP 및 DOM을 사용하여 Java에서 형식화되지 않은 XML 문자열의 형식을 지정하는 방법은 무엇입니까?

JAXP 및 DOM을 사용하여 Java에서 형식화되지 않은 XML 문자열의 형식을 지정하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-18 01:11:17
원래의
503명이 탐색했습니다.

How to Format an Unformatted XML String in Java Using JAXP and DOM?

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 = "hello";
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());
로그인 후 복사

출력:

<?xml version="1.0" encoding="UTF-8"?>
<tag>
  <nested>hello</nested>
</tag>
로그인 후 복사

위 내용은 JAXP 및 DOM을 사용하여 Java에서 형식화되지 않은 XML 문자열의 형식을 지정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿