Java 除了ANT',还有其他选择吗;s XMLTask在不更改文件的情况下进行XML替换';什么样的结构?

Java 除了ANT',还有其他选择吗;s XMLTask在不更改文件的情况下进行XML替换';什么样的结构?,java,groovy,jython,Java,Groovy,Jython,当使用Groovy的XMLParser(和smiliar API)更改XML中文本节点的内容时,在解析文件时,以及在写回文件时,它将丢失整体结构。即,空格更改,注释删除,dtd参考被删除 存在一个名为的ANT库,它允许在XPath的帮助下进行简单的替换,并维护文件的整体结构。Java、Groovy、Jython或friends中是否有类似且易于使用的API允许这样做? 最好是Groovy,因此它与Gradle集成得很好。普通java中也有XPath匹配器 请参见清单7的。例如,使用名称空间的XP

当使用Groovy的XMLParser(和smiliar API)更改XML中文本节点的内容时,在解析文件时,以及在写回文件时,它将丢失整体结构。即,空格更改,注释删除,dtd参考被删除

存在一个名为的ANT库,它允许在XPath的帮助下进行简单的替换,并维护文件的整体结构。Java、Groovy、Jython或friends中是否有类似且易于使用的API允许这样做?
最好是Groovy,因此它与Gradle集成得很好。

普通java中也有XPath匹配器

请参见清单7的
。例如,使用名称空间的XPath查询。

主要的理论是编写一个匹配器并循环结果。

普通java中也有XPath匹配器

请参见清单7的
。例如,使用名称空间的XPath查询。

主要的理论是编写一个匹配器并循环结果。

您可以将xmltask粘贴在类路径上,然后使用groovy的AntBuilder。有一个例子,您可以将xmltask粘贴在类路径上,然后使用groovy的AntBuilder。有一个例子是

我发现groovy中的DOMBuilder实际上保留了输入文件中的结构、注释和模式引用:

import groovy.xml.DOMBuilder
import groovy.xml.XmlUtil
import static javax.xml.xpath.XPathConstants.*
import javax.xml.xpath.*

def doc = DOMBuilder.parse(new StringReader(new File("ejb-jar.xml").getText()), false, false).documentElement

use(groovy.xml.dom.DOMCategory) {
    nodes= doc.xpath( "//session/ejb-name[text()='EmployeeFacade']/../description", NODESET)
    println nodes.getLength()
    nodes.each{ 
        it.value = "TEST"
    }
}

def result = XmlUtil.serialize(doc)
println result

我发现groovy中的DOMBuilder实际上保留了输入文件中的结构、注释和模式引用:

import groovy.xml.DOMBuilder
import groovy.xml.XmlUtil
import static javax.xml.xpath.XPathConstants.*
import javax.xml.xpath.*

def doc = DOMBuilder.parse(new StringReader(new File("ejb-jar.xml").getText()), false, false).documentElement

use(groovy.xml.dom.DOMCategory) {
    nodes= doc.xpath( "//session/ejb-name[text()='EmployeeFacade']/../description", NODESET)
    println nodes.getLength()
    nodes.each{ 
        it.value = "TEST"
    }
}

def result = XmlUtil.serialize(doc)
println result

没想到这会起作用……

我看不出这和我的问题有什么关系。如何确保保留输出文件的格式(包括缩进、注释等)?它只是一个用于访问元素的XPath库。没有提到用“未更改”的格式保存它?我看不出这与我的问题有什么关系。如何确保保留输出文件的格式(包括缩进、注释等)?它只是一个用于访问元素的XPath库。没有提到以“未更改”格式将其保存回?请注意,XMLTask在非Oracle/Sun JRE上经常失败,因此必须仍然找到备选方案。请注意,XMLTask在非Oracle/Sun JRE上经常失败,因此必须仍然找到备选方案。断开的链接,这是更新的链接:断开的链接,这是更新的链接: