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