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

<p:declare-step type="p:filter">
   <p:input port="source"/>
   <p:output port="result" sequence="true"/>
   <p:option name="select" required="true"/> <!-- XPathExpression -->
</p:declare-step>

Der Filter-Port hat im Wesentlichen dieselbe Funktionalität wie der Input-Port. Der entscheidende Unterschied ist, dass durch einen entsprechenden XPath-Ausdruck der einzulesende Inhalt genau definiert bzw. gefiltert werden kann.

Beispiel

Im folgenden Beispiel werden sämtliche “Titel“-Elemente aus dem Eingangsdokument herausgefiltert.

<?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" sequence="true"/>
   <p:filter select="/FilmSammlung/Film/Titel"/>
</p:declare-step>

Im Attribut “select“ wird der XPath-Ausdruck angegeben. Der boolsche Wert im “href“-Attribut “sequence“ von <p:output> sollte auf “true“ gesetzt werden, da XPath-Ausdrücke in der Regel mehrere Ausgabedokumente produzieren (für jeden Treffer ein Dokument).

Folgende Ausgabe wird vom XProc-Prozessor produziert:

<Titel>Star Wars: Episode IV - A New Hope</Titel>
<Titel>Eraserhead</Titel>
<Titel>Unforgiven</Titel>
Tipp der data2type-Redaktion:
Zum Thema XProc bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: