2011-08-09 81 views
4

有沒有辦法在Java中打印沒有XML頭標籤的XML內容?在沒有XML文件標籤的Java中打印XML

例如,如果我有一個這樣的XML:

<?xml version='1.0' encoding='UTF-8'?> 
<rootElement> 
<childElement>Text</childElement> 
</rootElement> 

我只想打印

<rootElement> 
<childElement>Text</childElement> 
</rootElement> 

這是非常相似,我到目前爲止做: http://sacrosanctblood.blogspot.com/2008/07/convert-xml-file-to-xml-string-in-java.html

我不能給出確切的源代碼,但上面的鏈接示例應該給你一些想法。下面是與進口代碼:

import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.transform.TransformerFactory; 
import javax.xml.transform.Transformer; 
import javax.xml.transform.dom.DOMSource; 
import javax.xml.transform.stream.StreamResult; 
import javax.xml.transform.TransformerConfigurationException; 
import javax.xml.transform.TransformerException; 
import org.w3c.dom.Attr; 
import org.w3c.dom.Document; 
import org.w3c.dom.Text; 

public String convertXMLFileToString(String fileName) 
     { 
      try{ 
      DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); 
      InputStream inputStream = new FileInputStream(new File(fileName)); 
      org.w3c.dom.Document doc = documentBuilderFactory.newDocumentBuilder().parse(inputStream); 
      StringWriter stw = new StringWriter(); 
      Transformer serializer = TransformerFactory.newInstance().newTransformer(); 
      serializer.transform(new DOMSource(doc), new StreamResult(stw)); 
      return stw.toString(); 
      } 
      catch (Exception e) { 
      e.printStackTrace(); 
      } 
      return null; 
     } 
+0

你怎麼寫xml?使用哪個庫/工具?你可以發佈的Java代碼? –

回答

15
Transformer serializer = TransformerFactory.newInstance().newTransformer(); 
serializer.setOutputProperty("omit-xml-declaration", "yes"); 
serializer.transform(new DOMSource(doc), new StreamResult(stw)); 

好老XSL)。

+2

而且[OutputKeys](http://download.oracle.com/javase/7/docs/api/javax/xml/transform/OutputKeys.html#OMIT_XML_DECLARATION)中甚至還有一個String常量。 –

+0

謝謝..看起來很有希望。讓我嘗試一下,然後回來! – Ankit

+0

真棒!謝謝..那工作!投票贊成:) – Ankit