A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
<p:declare-step type="p:string-replace"> <p:input port="source"/> <p:output port="result"/> <p:option name="match" required="true"/> <!-- XSLTMatchPattern --> <p:option name="replace" required="true"/> <!-- XPathExpression --></p:declare-step>
Durch <p:string-replace> ist es möglich strings auszutauschen. Ausgehend von einem XSLT Ausdruck der in der Option “match“ angegeben wird, wird das entsprechende Ziel durch den neuen String, welcher in der Option “replace“ als XPath Ausdruck hinterlegt wird, ausgetauscht. Das initale Dokument wird am Input-Port (“source“) angegeben. Das Ergebnis wird auf den Ouput-Port (“result“) geschrieben.
Beispiel
Im folgenden Beispiel sollen sämtliche Hauptdarsteller Einträge mit dem Wert “Mark Hamill“ durch “Harrison Ford“ ersetzt werden.
<?xml version="1.0" encoding="UTF-8"?> <p:declare-step xmlns:p="http://www.w3.org/ns/xproc" xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0"> <p:input port="source"> <p:document href="filmsammlung.xml"/> </p:input> <p:output port="result"/> <p:string-replace match="/FilmSammlung/Film/Cast/Hauptdarsteller[text()='Mark Hamill']" replace="/FilmSammlung/Film/Cast/Hauptdarsteller[text()='Harrison Ford']"/> </p:declare-step>
In der Ausgabe werden nach dem Durchführen dieses Stylesheets sämtliche “Hauptdarsteller“ Elemente mit dem Wert “Mark Hamill“ durch “Harrison Ford“ ersetzt. Allerdings ohne Markup Tags, da XPath lediglich den Wert des spezifizierten Elements adressiert. Das Ergebnis würde so aussehen (Auszug):
[...] <Cast> Harrison Ford <Hauptdarsteller>Harrison Ford</Hauptdarsteller> </Cast> [...]