Re: p:for-each

"Dave Pawson" <dave.pawson@gmail.com> writes:

> I'm looking for an example of p:for-each
>
> Scenario.
>
> The current directory has many *.xpl files
> I want to return the p:declare-step/@name value
>
> Starting with
> <p:for-each
>   name? = NCName>
>     ((p:iteration-source? &
>       (p:output |
>        p:log)*),
>      subpipeline)
> </p:for-each>
> "When a pipeline needs to process a sequence of documents "
>    (Does this mean a sequence of documents in a directory???? perhaps
> not, but since it's undefined in
> the rec.... that's how I want to interpret it)

A sequence of documents is...a sequence of zero or more documents. For
example, if you use select to grab all the chapters of a book, that
creates a sequence of chapter documents.

> I want to select a p:iteration source (the source over which I want to iterate)
>
> I try p:document and hit XD0011 when I try *.xpl in the @href attribute.
>
> Anyone got a practical example of using p:for-each please?
> I couldn't find anything in the test suite either.
>
> Am I looking for a single file with many 'documents' within it?

What you probably want is something like this:

  <p:directory-list path="."
		    include-filter=".*\.xpl"/>

  <p:make-absolute-uris match="c:file/@name">
    <p:with-option name="base-uri" select="/c:directory/@xml:base"/>
  </p:make-absolute-uris>

  <p:for-each>
    <p:iteration-source select="//c:file"/>

    <p:load>
      <p:with-option name="href" select="/c:file/@name"/>
    </p:load>
  </p:for-each>

The result of that for-each is a sequence of documents (the pipelines
that were found by the directory-list step). You can then look at each
of their @name attributes if that's what you're after.

                                        Be seeing you,
                                          norm

-- 
Norman Walsh <ndw@nwalsh.com> | Being forced to write comments actually
http://nwalsh.com/            | improves code, because it is easier to
                              | fix a crock than to explain it.--G.
                              | Steele

Received on Sunday, 21 December 2008 20:07:12 UTC