RE: variables in xPath statements

> <p:filter select="//div">
> 	<p:input port="source">
> 		<p:pipe port="result" step="loadDocument"/>
> 	</p:input>
> </p:filter>
> 
> <p:for-each name="forEachChunk">
> 
> 	<p:variable name="divID" select="/*/@id"/>
> 	<p:variable name="ancestorID"
> select="//div[@id=$divID]/ancestor::chapter[1]/@id">
> 		<p:pipe port=result" step="loadDocument"/>
> 	</p:variable>

In XProc, the data that you process is always XML documents. That means
that if you, for instance, use p:filter (or p:input/@select) to extract
parts of a document, the result you get is always a sequence of
*documents*.  This is why I think the XPath expression for ancestorID
fails: "div" is the document element, and therefore there is no ancestor
"chapter" element.

Hope this helps,
Vojtech

--
Vojtech Toman
Principal Software Engineer
EMC Corporation
toman_vojtech@emc.com
http://developer.emc.com/xmltech

Received on Monday, 21 June 2010 12:53:38 UTC