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

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

Durch den <p:unwrap>-Step können umschließende Elemente entfernt werden. Diese werden dann durch ihre entsprechenden Kind-Elemente ersetzt. Das zu entfernende umschließende Element wird durch einen XSLT-Ausdruck definiert. Das Quell-Dokument wird über den Input-Port (“source“) eingelesen. Die Ausgabe erfolgt über den Output-Port (“result“).

Beispiel

Im folgenden Beispiel sollen dem bekannten Dokument (“filmsammlung.xml“) die umschließenden Elemente “Cast“ entfernt werden, sodass die entsprechenden Kind-Elemente (“Hauptdarsteller“) an dessen Stelle treten können.

<?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:unwrap match="Cast"/>
</p:declare-step>

Nach dem Durchführen dieses Prozesses sieht das Resultat folgendermaßen aus (Auszug):

<Produzent>George Lucas</Produzent>
   <Hauptdarsteller>Mark Hamill</Hauptdarsteller>
   <Hauptdarsteller>Harrison Ford</Hauptdarsteller>
   <Laenge>121 min</Laenge>
[...]

Das umschließende “Cast“-Element wurde entfernt.

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