I am completely stuck figuring this out. I have list of IDREFs captured from an
error report. I created a well-formed XML instance from the list of values.
This is list of IDREFs that have no corresponding ID. I need to find these
IDREF atrributes in a very large collection of files and generate a report that
tells writers what files the errors are located.
The validation report was generated from a concatenated, very large complete
manual. I can locate the errors in that file, but that's not how the manual is
worked. I need to locate each error in the sub-files.
How do I walk through the list of IDREF elements, locate them in a collection
of approx. 600 files and generate a report? Any help is appreciated.
XSLT 2.0
My list of IDREFs looks like this (abbreviated):
<?xml version="1.0" encoding="UTF-8"?>
<IDREFS>
<IDREF>NSN-</IDREF>
<IDREF>NSN-</IDREF>
<IDREF>m2025792355320</IDREF>
<IDREF>m22040592355332</IDREF>
<IDREF>m22040592355332</IDREF>
<IDREF>m22040592355332</IDREF>
<IDREF>m2034792355320</IDREF>
<IDREF>m2050492355320</IDREF>
</IDREFS>
My XSLT, which renders no results:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:output method="text" omit-xml-declaration="yes" indent="no" />
<xsl:param name="collection"
select="collection('file:/M:/?select=M2*.xml')"/>
<xsl:variable name="IDREFS" select="document('file:/C:/IDREFS.xml')"/>
<xsl:key name="VALUE" match="IDREFS" use="child::IDREF"/>
<xsl:template match="/">
<xsl:result-document method="text" href="file:/C:/bae/test.txt">
<xsl:for-each select="$collection//@wpid | //@itemid">
<xsl:variable name="ATTR" select="."/>
<xsl:for-each select="$IDREFS">
<xsl:value-of select="base-uri(.)"/><xsl:value-of
select="key('VALUE',$ATTR)"/>
</xsl:for-each>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:result-document>
</xsl:template>
</xsl:stylesheet>
C Flanders
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--