私のprogram.wxsファイルには、次のようなものがあります。
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="CLASSES">
<Directory Id="dirAAAAA" Name="folderA">
<Directory Id="dirBBBBB" Name="folderB">
<Component Id="cmpCCCCC" Guid="MY-GUID">
<File Id="filDDDDD" KeyPath="yes" Source="SourceDir\en_myfile.xml" />
</Component>
</Directory>
</Directory>
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="LANG_PACKS_EN_US_COMPONENTS">
<ComponentRef Id="cmpCCCCC" />
</ComponentGroup>
</Fragment>
</Wix>
そして私は出力を次のようにしたいと思います
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="CLASSES">
<Directory Id="dirAAAAA" Name="folderA">
<Directory Id="dirBBBBB" Name="folderB">
<Component Id="en_cmpCCCCCC" Guid="MY-GUID">
<File Id="filDDDDD" KeyPath="yes" Source="SourceDir\en_myfile.xml" >
<CopyFile Id ="filDDDDD" DestinationProperty="dirBBBBB" DestinationName="myfile.xml/>
</File>
</Component>
</Directory>
</Directory>
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="LANG_PACKS_EN_US_COMPONENTS">
<ComponentRef Id="en_cmpCCCCC" />
</ComponentGroup>
</Fragment>
</Wix>
今私は.XSLTのためにこれを持っています
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="wix:Component/@Id">
<xsl:attribute name="{name()}">
<xsl:value-of select="concat('en_', .)" />
</xsl:attribute>
</xsl:template>
<xsl:template match="wix:ComponentRef/@Id">
<xsl:attribute name="{name()}">
<xsl:value-of select="concat('en_', .)" />
</xsl:attribute>
</xsl:template>
<xsl:template match="File">
<xsl:apply-templates select="@* | node()" />
<CopyFile Id="xxx" DestinationProperty="yyy" DestinationName="zzz"/>
</xsl:template>
ノードとノード<CopyFile>
から値を取得するノードを追加したい<Directory>
<file Source>
この.wxsを変更するために使用できる.XSLTを手伝ってもらえますか?