| Subject: [xsl] Correcting a prior error From: Dave Pawson <davep@xxxxxxxxxxxxx> Date: Fri, 30 Jul 2010 09:44:32 +0100 | 
I've been working with a series of xhtml like files, cleaning them up.
It was a case of run an identity tranform, apply corrections.
That was the theory. 
Luckily I kept a backup.
I hastily created an incorrect version of the identity transform
which omitted to copy the contents of any attributes. 
I'm left with the problem of how to correct it.
Given 
directory A contains the files to be corrected.
directory B contains the backup set of files.
I want to match on 
"x:a[not(string(@href))]" I.e. those a elements with an empty href
attribute. 
then copy across the value of the 'matching' href in the B directory,
same file. I'm iterating through the files in A using 
 <xsl:for-each select="for $f in collection('/A?select=*.xml')
                         return $f">
 <xsl:result-document 
       href="{replace(base-uri(),'A','AA')}">
       <xsl:apply-templates/>
   </xsl:result-document>
which creates the temporary directory AA with the corrections applied. 
the problem I'm finding is picking up the correct a element in 
the second file?
Having found an empty a element
I'm trying
 <xsl:variable name="backup" select="'file:///B'"/>
  <xsl:template match="x:a[not(@href)]">
    <xsl:variable name="thisdoc" select="document-uri(/)"/>
    <xsl:variable name="base"
select="substring-after($thisdoc,'blg/')"/>
    <xsl:variable name="src" select="concat($backup,'/',$base)"
as="xs:string"/>  <!- this is the basename of the filename being worked
->
<-this is an attempt to select the 'right' a element->
    <xsl:variable name="posn" select="count(ancestor::*|preceding::*)"/>
    <xsl:variable name="val" 
      select="(document($src)//*)[$posn]/@href"/>
   
    <!-- Now copy this across -->
    <x:a href="{$val}">
      <xsl:value-of select="."/>
    </x:a>
  </xsl:template>
Can anyone spot any obvious sillies please?
regards
------------------------
Dave Pawson
http://www.dpawson.co.uk
XSLT, XSL-FO and docbook FAQ
-- 
regards 
-- 
Dave Pawson
XSLT XSL-FO FAQ.
http://www.dpawson.co.uk
| Current Thread | 
|---|
| 
 | 
| <- Previous | Index | Next -> | 
|---|---|---|
| [xsl] ANN: LIBX* July 2010 Beta Rel, Steve Ball | Thread | Re: [xsl] Correcting a prior error, Michael Kay | 
| [xsl] ANN: LIBX* July 2010 Beta Rel, Steve Ball | Date | Re: [xsl] Correcting a prior error, Michael Kay | 
| Month |