2012-02-29 32 views
5

Làm cách nào để chuyển đổi câu trả lời Document thành String?chuyển đổi DOM thành Chuỗi trong android?

Tôi đã thử mã này, nhưng nó không hoạt động:

Element root = response.getDocumentElement(); 
String s = root.toString(); 
+0

để hiển thị phản ứng trên log ở định dạng xml –

Trả lời

7

Hãy thử điều này:

import java.io.*; 
import javax.xml.transform.*; 
import javax.xml.transform.dom.*; 
import javax.xml.transform.stream.*; 

//method to convert Document to String 
public String getStringFromDocument(Document doc) 
{ 
    try 
    { 
     DOMSource domSource = new DOMSource(doc); 
     StringWriter writer = new StringWriter(); 
     StreamResult result = new StreamResult(writer); 
     TransformerFactory tf = TransformerFactory.newInstance(); 
     Transformer transformer = tf.newTransformer(); 
     transformer.transform(domSource, result); 
     return writer.toString(); 
    } 
    catch(TransformerException ex) 
    { 
     ex.printStackTrace(); 
     return null; 
    } 
} 
+0

sử dụng mã này cho phiên bản Android cao hơn ở trên 2.2 –

+0

và nếu tôi đang sử dụng Android 2.1 ... những gì tôi cần làm ? – digulino

1

somthing như thế:

public static String xmlToString(Node node) { 
     try { 
      Source source = new DOMSource(node); 
      StringWriter stringWriter = new StringWriter(); 
      Result result = new StreamResult(stringWriter); 
      TransformerFactory factory = TransformerFactory.newInstance(); 
      //factory.setAttribute("indent-number", "4"); 
      Transformer transformer = factory.newTransformer(); 
      transformer.transform(source, result); 
      return stringWriter.getBuffer().toString(); 
     } catch (TransformerConfigurationException e) { 
      e.printStackTrace(); 
     } catch (TransformerException e) { 
      e.printStackTrace(); 
     } 
     return null; 
} 
+0

Tôi chỉ chạy trên Samsung Galaxy ACE - mọi thứ hoạt động (chỉ cần bình luận factory.setAttribute ("indent-number", "4"); ) –

Các vấn đề liên quan