replaceが作れた。
concat(
substring-before("subject", "pattern"),
"replacement",
substring-after("subject", "pattern")
)
これでsubjectの中にあるpatternをreplacementに置き換えられる。
でreplaceができると、ネストしまくればちょっと複雑なこともできるけどとても手では書けなくなるのでXPathを書くためのDSLが必要になって、それならはじめっからXPathと関係ないDSLつくれば? みたいになって意味がなかったです。