Groovy를 처음 사용하고 간단한 문제가 있습니다. 내가 원하는 것은 하나의 XML 파일에서 특정 요소를 추출하고 그 파일로 새 파일을 만든 것 뿐이다.Groovy : 한 문서에서 다른 문서로 XML 요소를 복사하십시오.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.group</groupId>
<artifactId>artifact</artifactId>
<version>1.4</version>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
내가 그루비에서 XML을 구문 분석하는 방법을 알고 : 나는 또한 그루비에서 XML을 생성하는 방법을 알고
def project = new XmlParser().parse("pom.xml")
project.groupId.each{
println it.text()
}
: 다음 예제 XML이야,의는 메이븐 POM 파일을 사용하게
을def xml = new groovy.xml.MarkupBuilder()
xml.project(){
modelVersion("artifactId")
groupId("com.group")
artifactId("artifact")
}
그러나 두 가지를 결합하는 데 문제가있는 것 같습니다. 예를 들어, groupId, artifactId 및 전체 개의 종속성 트리를 가져 와서 새 XML을 만듭니다. 그다지 열심히 할 수는 없으며 Groovy의 단순함을 활용하고 싶습니다. 그 라인을 따라
뭔가 (물론이 작동하지 않음) :
def newXml= new groovy.xml.MarkupBuilder()
newXml.groupId= project.groupId
newXml.dependencies = project.dependencyManagement.dependencies
감사합니다. 그 코드는 많은 도움이하지만 즉, 네임 스페이스를 처리 할 수있는 방법 입력에서 프로젝트 태그처럼 보이는 경우 :
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
그것은 다음 출력에 몇 가지 이상한 주석을 추가하고있다. 내가 원했던 것은 결과물의 프로젝트 태그도 비슷하게 보인다는 것입니다.
답변이 여기에있을 수 있습니다 : http://stackoverflow.com/questions/1372771/splitting-child-node-from-xml-file-into-their-own-xml-files – djangofan
@Jonas 업데이트 됨 네임 스페이스 지원을 추가하려면 –