2014-03-28 2 views
0

사용자 지정 XML 문서를 만들고 있습니다. 하지만 XML을 파일로 사용할 수는 없지만 시스템 클립 보드에서 XML을 문자열로 사용하여 수동으로 기존 파일에 붙여 넣을 수 있기를 바랍니다.Java에서 문자열에 XML 내용을 쓰는 방법은 무엇입니까?

나는 같은 XML 작성하는 변압기를 사용하고 있습니다 :

TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
Transformer transformer = transformerFactory.newTransformer(); 
DOMSource source = new DOMSource(doc); 

StringWriter writer = new StringWriter(); 
transformer.transform(source, new StreamResult(writer)); 
String output = writer.toString(); 

을하지만 난 여기서 널 포인터 예외를 얻고있다.

transformer.transform(source, new StreamResult(writer)); 

도와 주실 수 있습니까?

+0

'source' 또는'writer'은 null입니다. 디버거를 사용하여 어떤 디버거인지 알려주십시오. –

+0

null을 디버깅하고 확인 했습니까? 이것이 전체 코드이고 NPE가 발생하는 실제 라인입니까? 이 라인은 괜찮은 것처럼 보입니다. (transformerFactory.newTransformer()가 null을 반환하지 않는다고 가정) 따라서 NPE가 어딘가에서 _inside_'transform()'메소드가 발생한다고 가정합니다. 'doc'가 null이기 때문에 - 그러나, 귀하의 게시물은 그렇게 말하지 않으므로, 다시 확인하십시오. – Thomas

+0

그래서 질문 : "어떻게 문자열을 클립 보드에 넣을 수 있습니까?" –

답변

1

확인이

TransformerFactory tf = TransformerFactory.newInstance(); 
Transformer transformer = tf.newTransformer(); 
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); 
StringWriter writer = new StringWriter(); 
transformer.transform(new DOMSource(doc), new StreamResult(writer)); 
String output = writer.getBuffer().toString().replaceAll("\n|\r", ""); 

에서 아마도 here

관련 문제