Thanks Jacob. It works.
Now, i'm trying to figure out a simpler way to achieve those
replacement.
My attempts (here D:\ => INSTALLDIR) :
<xsl:template match='Wix:RegistryValue[@Value = "D:\"]'>
<xsl:value-of
select="translate(@Value,'D:\','[INSTALLDIR')" />
</xsl:template>
<xsl:template match="Wix:RegistryValue">
<xsl:for-each select="Value">
<xsl:value-of
select="translate(@Value,'D:\','[INSTALLDIR]')"/>
</xsl:for-each>
</xsl:template>
I understand errors but that's not enough. Need to learn.
Thanks for the tip Peter. I use regexp in vbscript.
Good news. A moment, i wondered if i wouldn't have to use
vbscript/regexp to modify reg's file directly.
I'm finishing this msi, and i'll go on searching.
Anyway, thanks guys.
Le %:Date:, Peter Shirtcliffe <[email protected]> a écrit:
> Regular expressions are useful here if you know them:
> http://www.w3.org/TR/xpath-functions/#string.match
>
> -----Original Message-----
> From: Hoover, Jacob [mailto:[email protected]]
> Sent: 11 February 2013 19:31
> To: General discussion for Windows Installer XML toolset.
> Subject: Re: [WiX-users] [Wix-users] XSLT
>
> Hmm,
> I am no XSLT GURU, but could you do...
>
> <xsl:template name="replace-string">
> <xsl:param name="text"/>
> <xsl:param name="replace"/>
> <xsl:param name="with"/>
> <xsl:choose>
> <xsl:when test="contains($text,$replace)">
> <xsl:value-of select="substring-before($text,$replace)"/>
> <xsl:value-of select="$with"/>
> <xsl:call-template name="replace-string">
> <xsl:with-param name="text"
> select="substring-after($text,$replace)"/>
> <xsl:with-param name="replace" select="$replace"/>
> <xsl:with-param name="with" select="$with"/>
> </xsl:call-template>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="$text"/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
>
> <xsl:template match="wix:RegistryValue/@Value">
> <xsl:attribute name="Value">
> <xsl:choose>
> <xsl:when test="starts-with(.,
> 'C:\windows\system32')">
> <xsl:call-template name="replace-string">
> <xsl:with-param name="text"
> select="."/>
> <xsl:with-param name="replace"
> select="'C:\windows\system32'" />
> <xsl:with-param name="with"
> select="'[SystemFolder]'"/>
> </xsl:call-template>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="."/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:attribute>
> </xsl:template>
>
> -----Original Message-----
> From: Gabriel Ivanes [mailto:[email protected]]
> Sent: Monday, February 11, 2013 10:16 AM
> To: [email protected]
> Subject: Re: [WiX-users] [Wix-users] XSLT
>
> I already has a template. I changed attributes components few times.
> In this case, i don't know how to identify template :
>
> <xsl:template match="wix:RegistryValue">
> <RegistryValue Value="@Value">
> <xsl:apply-templates select="[SystemFolder]"/>
> </RegistryValue>
> </xsl:template>
>
> This is bad.
>
> Sure i want to resolv my issue, but i also wanted advises of good
> documentation with a wix approach.
> I find Nick's book to be a good way to learn wix. Maybe Wix's community
> has
> well-know ressource for XSLT.
> Thanks.
>
> Le %:Date:, "Hoover, Jacob" <[email protected]> a écrit:
> > I assume you mean how do I invoke an XSLT from heat. The "wix specific"
> > portion is simply passing -t transformfilename.xslt. From there on
> > out, it's all just XSLT.
> >
> > Here's an identity template to get you started:
> >
> > <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> > xmlns:msxsl="urn:schemas-microsoft-com:xslt"
> > xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
> > exclude-result-prefixes="msxsl wix">
> > <xsl:output method="xml" indent="yes"/>
> > <xsl:namespace-alias result-prefix="#default" stylesheet-prefix="wix"
> > />
> >
> > <xsl:template match="@* | node()">
> > <xsl:copy>
> > <xsl:apply-templates select="@* | node()"/>
> > </xsl:copy>
> > </xsl:template>
> > </xsl:stylesheet>
> >
> > >From there, it's up to you to determine which element's you want to
> change. If you wanted to tweak a directory, you'd use something like
> <xsl:template match="wix:Directory">.
> >
> >
> > Jacob
> >
> > -----Original Message-----
> > From: Gabriel Ivanes [mailto:[email protected]]
> > Sent: Monday, February 11, 2013 9:50 AM
> > To: [email protected]
> > Subject: [WiX-users] [Wix-users] XSLT
> >
> > Good day,
> >
> > Any good tutorial to use xsl with wix ?
> >
> > For example, replacing "C:\windows\system32" with [SystemFolder] in a
> > reg's file with heat.
> >
> > Thanks.
> >
> > --
> > Sincerely,
> > Gabriel
> >
> > "I know no way of judging the future but by the past."
> > Patrick Henry
> > "You can never plan the future by the past."
> > Edmund Burke
> >
> > ----------------------------------------------------------------------
> > --------
> > Free Next-Gen Firewall Hardware Offer
> > Buy your Sophos next-gen firewall before the end March 2013 and get
> > the hardware for free! Learn more.
> > http://p.sf.net/sfu/sophos-d2d-feb
> > _______________________________________________
> > WiX-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/wix-users
> >
> > ----------------------------------------------------------------------
> > --------
> > Free Next-Gen Firewall Hardware Offer
> > Buy your Sophos next-gen firewall before the end March 2013 and get
> > the hardware for free! Learn more.
> > http://p.sf.net/sfu/sophos-d2d-feb
> > _______________________________________________
> > WiX-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/wix-users
>
>
> --
> Sincerely,
> Gabriel
>
> "I know no way of judging the future but by the past."
> Patrick Henry
> "You can never plan the future by the past."
> Edmund Burke
>
> -----------------------------------------------------------------------------
> -
> Free Next-Gen Firewall Hardware Offer
> Buy your Sophos next-gen firewall before the end March 2013 and get the
> hardware for free! Learn more.
> http://p.sf.net/sfu/sophos-d2d-feb
> _______________________________________________
> WiX-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wix-users
> -----------------------------------------------------------------------------
> -
> Free Next-Gen Firewall Hardware Offer
> Buy your Sophos next-gen firewall before the end March 2013 and get the
> hardware for free! Learn more.
> http://p.sf.net/sfu/sophos-d2d-feb
> _______________________________________________
> WiX-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wix-users
> SDL PLC confidential, all rights reserved.
> If you are not the intended recipient of this mail SDL requests and
> requires that you delete it without acting upon or copying any of its
> contents, and we further request that you advise us.
> SDL PLC is a public limited company registered in England and Wales.
> Registered number: 02675207.
> Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire
> SL6 7DY, UK.
> ------------------------------------------------------------------------------
> Free Next-Gen Firewall Hardware Offer
> Buy your Sophos next-gen firewall before the end March 2013
> and get the hardware for free! Learn more.
> http://p.sf.net/sfu/sophos-d2d-feb
> _______________________________________________
> WiX-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wix-users
--
Sincèrement,
Gabriel
"I know no way of judging the future but by the past."
Patrick Henry
"You can never plan the future by the past."
Edmund Burke
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users