XProc-Steps
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:string-replace
<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>
[...]
Tipp der data2type-Redaktion: Zum Thema XProc bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |