2013-02-07 6 views
5

私が作成していcom.w3c.dom.Documentこのコードを使用Stringから:com.w3c.dom.Documentなしの<?xml version = "1.0" エンコード= "UTF-8" スタンドアロン= "なし"?>

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); 
Document doc = docBuilder.parse(new InputSource(new StringReader("<a><b id="5"/></a>"))); 

は私System.out.println(xmlToString(document))が、私はこれを取得する場合:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><a><b id="5"/></a> 

すべてがOKですが、私は、SOAPエンベロープにして、秘密鍵およびembedに署名しなければならないので、私は、XMLは<?xml version="1.0" encoding="UTF-8" standalone="no"?>宣言を持っている必要はありません。

答えて

11

あなたはTransformerを使用して"yes"OutputKeys.OMIT_XML_DECLARATIONプロパティを設定できます

Transformer t = TransformerFactory.newInstance().newTransformer(); 
t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); 
StringWriter sw = new StringWriter(); 
t.transform(new DOMSource(doc), new StreamResult(sw)); 

あなたも可能性がありますのでご注意ください。

  • を直接Stringを養うために代わりDOMSourceStreamSourceを使用します変圧器、あなたが本当にDocumentを必要としない場合。
  • Documentを出力する場合は、StreamResultの代わりにDOMResultを使用してください。
+0

ありがとうございました!今私は別の問題を抱えて、自分で解決しようとしています! :) –

関連する問題