2016-07-05 10 views
2

Ich versuche, xslt-Datei zu verwenden, um die pdb-Dateien herauszufiltern, wenn Dateien mit Hitze geerntet werden. Die pdb-Dateien sind jedoch immer noch da. Was vermisse ich? Hier ist die Datei:xslt filtert keine pdb-Dateien heraus

<?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" exclude-result-prefixes="msxsl"         
xmlns:wi="http://schemas.microsoft.com/wix/2006/wi"> 
<xsl:output method="xml" indent="yes"/> 

<xsl:template match="@* | node()"> 
<xsl:copy> 
    <xsl:apply-templates select="@* | node()"/> 
</xsl:copy> 
</xsl:template> 

<xsl:key name="pdf-search1"  match="wi:Component[contains(wi:File/@Source='$(var.StageDirXFire)', '.pdf')]" use="@Id"/> 

<xsl:template match="wi:Component[key('pdf-search1', @Id)]"/> 
<xsl:template match="wi:ComponentRef[key('pdf-search1', @Id)]"/> 

</xsl:stylesheet> 

Antwort

4

Versuchen Sie, diese Xslt

<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0" 
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
       xmlns:wix="http://schemas.microsoft.com/wix/2006/wi" 
       xmlns="http://schemas.microsoft.com/wix/2006/wi" 
       exclude-result-prefixes="xsl wix"> 

    <xsl:output method="xml" indent="yes" omit-xml-declaration="yes" /> 

    <xsl:strip-space elements="*"/> 

    <xsl:key name="PdbToRemove" 
      match="wix:Component[contains(wix:File/@Source, '.pdb')]" 
      use="@Id" /> 

    <xsl:template match="@*|node()"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
    </xsl:template> 

    <xsl:template match="*[self::wix:Component or self::wix:ComponentRef] 
         [key('PdbToRemove', @Id)]" /> 
</xsl:stylesheet> 

Ich weiß nicht wirklich viel über Xslt weiß, aber ich ist einfach so passiert zu haben, die genau die gleiche Sache getan Sie brauchte man meiner Installer-Projekte. Ich endete mit diesem xslt (und einigen anderen Sachen, die ich entfernte) nachdem ich eine Weile gegoogelt hatte.