Xquery 更新XML时保留空白

Xquery 更新XML时保留空白,xquery,whitespace,xquery-update,xqilla,Xquery,Whitespace,Xquery Update,Xqilla,我正在尝试创建一个自动发布脚本,可以更新几个Maven pom文件。目前,发布脚本是一个文本文件,其中包含指令和一些示例sed命令,这些命令假定旧版本号始终是唯一的。从1.8-SNAPSHOT更新到1.9-SNAPSHOT时,假定pom中任何地方出现的1.8-SNAPSHOT都指向此项目,需要更新 我希望通过正确读取XML来识别需要更新的特定元素,从而使这一点更加安全。因为结果更改将提交到git存储库,所以我不希望对空白进行任何不必要的更改 到目前为止,我已经提出了这个XQuery脚本 decl

我正在尝试创建一个自动发布脚本,可以更新几个Maven pom文件。目前,发布脚本是一个文本文件,其中包含指令和一些示例sed命令,这些命令假定旧版本号始终是唯一的。从1.8-SNAPSHOT更新到1.9-SNAPSHOT时,假定pom中任何地方出现的1.8-SNAPSHOT都指向此项目,需要更新

我希望通过正确读取XML来识别需要更新的特定元素,从而使这一点更加安全。因为结果更改将提交到git存储库,所以我不希望对空白进行任何不必要的更改

到目前为止,我已经提出了这个XQuery脚本

declare boundary-space preserve;
declare namespace mvn="http://maven.apache.org/POM/4.0.0";

declare variable $new_version external;

replace value of node //*[mvn:artifactId/text()="geowebcache"][mvn:groupId/text()="org.geowebcache"]/mvn:version with $new_version
我在xqilla运行:

xqilla -i pom.xml -u -v new_version "TEST" test.xq
这会按预期更新版本号,但去掉了大部分空白;这导致了一个丑陋而混乱的承诺

我不喜欢xqilla或XQuery,但我希望将依赖关系保持在最低限度。在Ubuntu12.04的主存储库中有一个小软件包,它几乎没有可传递的依赖项,这就是我想要的