At 2015-09-06 03:48 +0000, Mark Wilson pubs(_at_)knihtisk(_dot_)org wrote:
I got to work with one small change to your suggested code:
<xsl:attribute name="pdf-number"
select="substring-before(key('pdf-key', ., doc('test-xml.xml')), 'Crawford')"/>
I think a better solution would be:
<xsl:attribute name="pdf-number"
select="key('pdf-key',.,doc('test-xml.xml))/PDF"/>
... because you want the value of the <PDF> child of the <Item>
element being returned by the key() function. I worry you approach
XSLT, like many of my incoming students did, as dealing with XML as a
bunch of strings to be manipulated. I had to teach the students to
understand XSLT treats XML as a bunch of nodes, not strings. Whereas
you approached the solution above by substringing the <Item> element
string value, I suggest you simply address the PDF child of the Item
element node and you have everything you need without using substrings.
My major misunderstanding was of the <xsl:key/> statement, not
realizing that is was not a 'variable to be loaded when called' and
that the key() function later would parse the data in FILE2.
Good ... I was trying to get across to you that, yes, the key
declaration is in effect for all input files.
Also, thanks for reopening the book for me.
You are most welcome. Other registered purchasers are welcome to ask
for access to the latest edition (14th, dated 2011-02-11).
. . . . . . Ken
--
Check our site for free XML, XSLT, XSL-FO and UBL developer resources |
Free 5-hour lecture: http://www.CraneSoftwrights.com/links/video.htm |
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ |
G. Ken Holman
mailto:gkholman(_at_)CraneSoftwrights(_dot_)com |
Google+ profile: http://plus.google.com/+GKenHolman-Crane/about |
Legal business disclaimers: http://www.CraneSoftwrights.com/legal |
---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--