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:replace

<p:declare-step type="p:replace">
   <p:input port="source" primary="true"/>
   <p:input port="replacement"/>
   <p:output port="result"/>
   <p:option name="match" required="true"/> <!-- XSLTMatchPattern -->
</p:declare-step>

Der Step <p:replace> ersetzt die Inhalte, die vom Input-Port “source“ kommen, mit den Inhalten, die am Input-Port “replacement“ angegeben werden. Die Stelle, wo das Ersetzen durchgeführt werden soll, wird durch einen XSLT-Ausdruck in der Option “match“ festgelegt. Das Resultat dieses Prozesses wird am Output-Port (“result“) ausgegeben.

Beispiel

Im folgenden Beispiel wird in einem “Film“-Element ein “Hauptdarsteller“-Element durch ein neues ersetzt.

<?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:replace match="/FilmSammlung/Film[1]/Cast[1]/Hauptdarsteller[1]">
      <p:input port="replacement">
         <p:inline>
            <Hauptdarsteller>Carrie Fisher</Hauptdarsteller>
         </p:inline>
      </p:input>
   </p:replace>
</p:declare-step>

Im Beispiel wird nun, weil der XSLT-Ausdruck eindeutig definiert ist, der Eintrag <Hauptdarsteller>Mark Hamill</Hauptdarsteller> durch den neuen Eintrag <Hauptdarsteller>Carrie Fisher</Hauptdarsteller> ersetzt.

Tipp der data2type-Redaktion:
Zum Thema XProc bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: