2009-06-30 4 views
3

XML 문자열로 변환해야하는 org.w3c.dom.Document 인스턴스가 있습니다. Java (javax.xml.transform facility 사용)에서이 작업을 수행하는 방법을 알고 있지만이 작업을 수행하는 데 더 "멋져"하는 방법이 있는지 궁금합니다.org.w3c.dom Groovy를 사용하는 XML 문자열에 대한 문서

DOM 문서의 그루비 스크립트 버전을 성공적으로 생성하는 DomToGroovy 클래스를 사용해 보았습니다. 하지만 XML 문자열을 생성하는 데이 코드를 어떻게 사용할지 모르겠습니다. 나는 틀린 나무를 짖고 있을지도 모른다. ...

어떤 도움이라도 매우 만족 될 것이다!

답변

3

하지만이 작업을 수행하는 데 '그루비 (groovy)'방법이 있는지 궁금한가요? 나는이 클래스가 추가 될 때 그루비의 버전을 무엇인지 확실하지 않다 클래스 groovy.xml.XmlUtil

,하지만 난 그게 초기 버전이었다고 생각한다 :

이 확실하다.

편집 : class groovy.xml.XmlUtil exists since version 1.6.0; 버전 1.5.x에서는 groovy.xml.dom.DOMUtil으로 명명되었습니다. 어느 쪽의 버젼에서도,이 클래스는 그루비를 짓지 않습니다. its source을 보면 약 java.xml.transform 인 래퍼 일 것입니다. 그러나 Groovy GDK는 Java JDK가 실패하는 동안 일반적인 작업 (문자열을 XML로 작성)을 수행하는 간단한 방법을 제공합니다.

예 :

import javax.xml.parsers.DocumentBuilderFactory 
import groovy.xml.XmlUtil 

def fileName = 'build.xml' 

def builder  = DocumentBuilderFactory.newInstance().newDocumentBuilder() 
def inputStream = new FileInputStream(fileName) 
def doc   = builder.parse(inputStream) 

println XmlUtil.serialize(doc.documentElement) 

항상 Groovy API하고 자신의 솔루션을 (교훈은 내가 어려운 방법을 배웠)

+0

나는 매우 그루비의 압연 전에 Groovy extensions to the JDK보고 그것이 Groovy 1.6에 추가되었다고 생각하십시오. NetBeans 6.5와 함께 제공되는 Groovy 1.5에는 포함되어 있지 않습니다. – Patrick

1

그것은 지금

> def doc = groovy.xml.DOMBuilder.newInstance().parseText("<foo count='42'><bar/><foo>") 
> doc.documentElement as String 
<foo count="42"> 
    <bar/> 
</foo>