CyStack logo
  • Sản phẩm & Dịch vụ
  • Giải pháp
  • Bảng giá
  • Công ty
  • Tài liệu
Vi

vi

Mục lục

Trang chủBlogHướng dẫn chuyển đổi chuỗ...
Java

Hướng dẫn chuyển đổi chuỗi thành XML trong Java

2 phút đọc19/08/2025
CyStack Author
Bao Tran

Web Developer

0 lượt xem
Reading Time: 2 minutes

Đôi khi khi lập trình bằng Java, chúng ta nhận được một chuỗi (String) thực chất là một XML và để xử lý nó, chúng ta cần chuyển đổi nó sang XML Document (org.w3c.dom.Document). Ngoài ra, với mục đích debug hoặc gửi đến một hàm khác, chúng ta có thể cần chuyển đổi đối tượng Document sang String.

Bài viết này sẽ hướng dẫn bạn cách chuyển đổi chuỗi thành XML và XML sang chuỗi trong Java.

chuyển đổi chuỗi thành XML

Chuyển đổi chuỗi thành XML

Dưới đây tôi đề cập đến hai hàm tiện ích.

  1. Document convertStringToDocument(String xmlStr): Phương thức này sẽ nhận đầu vào là String và sau đó chuyển đổi nó sang DOM Document và trả về. Chúng ta sẽ sử dụng InputSource và StringReader cho việc chuyển đổi này.
  2. String convertDocumentToString(Document doc): Phương thức này sẽ nhận đầu vào là Document và chuyển đổi nó sang String. Chúng ta sẽ sử dụng Transformer, StringWriter và StreamResult cho việc chuyển đổi này.
package com.journaldev.xml;

import java.io.StringReader;
import java.io.StringWriter;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.xml.sax.InputSource;

public class StringToDocumentToString {

    public static void main(String[] args) {
        final String xmlStr = "\\n"+
                                "Pankaj25\\n"+
                                "DeveloperMale";
        Document doc = convertStringToDocument(xmlStr);

        String str = convertDocumentToString(doc);
        System.out.println(str);
    }

    private static String convertDocumentToString(Document doc) {
        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer transformer;
        try {
            transformer = tf.newTransformer();
            // below code to remove XML declaration
            // transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
            StringWriter writer = new StringWriter();
            transformer.transform(new DOMSource(doc), new StreamResult(writer));
            String output = writer.getBuffer().toString();
            return output;
        } catch (TransformerException e) {
            e.printStackTrace();
        }

        return null;
    }

    private static Document convertStringToDocument(String xmlStr) {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder;
        try
        {
            builder = factory.newDocumentBuilder();
            Document doc = builder.parse( new InputSource( new StringReader( xmlStr ) ) );
            return doc;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

}

Khi chúng ta chạy chương trình trên, chúng ta sẽ nhận được cùng một đầu ra String mà chúng ta đã sử dụng để tạo DOM Document.

Pankaj25
DeveloperMale

Bạn có thể sử dụng replaceAll("\\n|\\r", "") để loại bỏ các ký tự xuống dòng khỏi String và đưa nó về định dạng nhỏ gọn.

Về tác giả

Bao Tran
Bao TranWeb Developer

I’m passionate about web development and sharing my insights through articles, with over 8 years of experience. I hope these sharings inspire you and help build a strong web development community. @#@ Tôi đam mê phát triển web và chia sẻ những hiểu biết của mình thông qua các bài viết, với hơn 8 năm kinh nghiệm. Tôi hy vọng những chia sẻ này sẽ truyền cảm hứng cho các bạn và giúp xây dựng một cộng đồng phát triển web mạnh mẽ.

Cập nhật thông tin mới nhấtNhận các thông tin mới nhất về mối đe dọa, báo cáo an ninh mạng từ CyStack về hòm thư điện tử của bạn

Thảo luận (0)

Đăng nhập để thảo luận

Bài viết liên quan