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

<p:declare-step type="p:count">
   <p:input port="source" sequence="true"/>
   <p:output port="result"/>
      <p:option name="limit" select="0"/> <!-- integer -->
</p:declare-step>

Der Step <p:count> zählt die Anzahl der vorkommenden Dokumente, die durch den Input-Port “source“ gelangen und gibt als Resultat (am Output-Port “result“) den entsprechenden Wert aus. Der Option “limit“ kann durch den Benutzer ein Integer-Wert übergeben werden. Dieser setzt einen maximal Wert, der vorschreibt, wie weit gezählt werden soll. Falls der Benutzer den Wert 0 einträgt, wird unbegrenzt gezählt.

Beispiel

Im folgenden Beispiel werden die Dokumente der bekannten Eingangsdatei “filmsammlung.xml“ gezählt.

<?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:count limit="0"/>
</p:declare-step>

Da am Input-Port eine Datei eingelesen wird und keine weiteren Zwischenschritte in der Pipe vorkommen, die das Resultat von <p:count> beeinflussen könnten, ist das Ergebnis dieser Pipeline der numerische Wert “1“.

Im nächsten Beispiel wird vor den Step <p:count> noch ein <p:filter>-Step angebracht, der das Dokument nach den “Film“-Elementen aufteilen soll.

<?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:filter select="/FilmSammlung/Film"/>
   <p:count limit="0"/>
</p:declare-step>

Da im Eingangsdokument “filmsammlung.xml“ drei “Film“-Elemente vorhanden sind und <p:filter> aufgrund der XPath-Anweisung die Eingangsdaten nach diesen Elementen filtert, ist das Ergebnis dieser Pipeline der numerische Wert “3“.

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