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>