내용으로 건너뛰기
권남
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
•
pdfunit
•
jfrunit
•
zap
groovy:xml
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== Groovy XML ====== ===== XMLParser ===== * [[http://groovy.codehaus.org/Reading+XML+using+Groovy%27s+XmlParser|Groovy - Reading XML using Groovy's XmlParser]] * [[http://groovy.codehaus.org/Updating+XML+with+XmlParser|Groovy - Updating XML with XmlParser]] ==== Namespace ==== [[http://groovy.codehaus.org/api/groovy/xml/Namespace.html|groovy.xml.Namespace]] Namespace가 존재할 경우 각 노드의 이름([[http://groovy.codehaus.org/api/groovy/xml/QName.html|QName]])구조가 달라진다. ''pom.xml'' 파일을 파싱한다고 했을 때 다음과 같이한다. <code groovy> def pom = new XmlParser().parse(new File('pom.xml')) def ns = new groovy.xml.Namespace('http://maven.apache.org/POM/4.0.0') def items = pom[ns.dependencies][ns.dependency][ns.scope].findAll { it.text() == "optional" }.each { println it.text() } </code> ===== XML Builder ===== * ''MarkupBuilder'' * ''StreamingMarkupBuilder'' : ''mkp''를 통해 각종 설정 가능. * [[https://stackoverflow.com/questions/11388838/groovy-markupbuilder-name-conflict/11389034#11389034|Groovy MarkupBuilder name conflict]] 생성할 XML 태그 이름이 이미 Groovy Object에 존재하는 메소드 이름일 경우 충돌 해결 conflict<code groovy> // <identity>....</identity> identity([:]) { groupId(catalog.groupId) artifactId(catalog.artifactId) version(catalog.version) } // 뒤에 ([:]) 로 호출하여 다른 메소드 시그너처로 바꿔치기함 </code> * 혹은 ''delegate.tagname'' 으로 충돌해소 가능 [[http://mrhaki.blogspot.kr/2012/01/groovy-goodness-solve-naming-conflicts.html|Groovy Goodness: Solve Naming Conflicts with Builders]] <code groovy> def builder = new MarkupBuilder(writer) builder.message { delegate.body(contentType: 'plain') { text 'Simple message' } } // --> <message> <body contentType='plain'> <text>Simple message</text> </body> </message> </code> ===== Pretty Print ===== * [[http://mrhaki.blogspot.kr/2012/10/groovy-goodness-pretty-print-xml.html|Groovy Pretty Print XML]] <code groovy> println XmlUtil.serialize(xmlDocument) // 문자열 혹은 SteramingMarkupBuilder 객체 등. </code> ===== DOMBuilder ===== * [[http://docs.groovy-lang.org/latest/html/api/groovy/xml/DOMBuilder.html|DOMBuilder]]
groovy/xml.txt
· 마지막으로 수정됨: 2017/12/27 08:29 저자
kwon37xi
문서 도구
문서 보기
이전 판
역링크
맨 위로