我正在對收集註冊表數據後由WiX生成的文件進行一些XML轉換。對於那些不熟悉WiX的人,只要考慮我正在嘗試對XML文件進行XML傳輸,無論它來自何處。我遇到的問題是:當我使用XPath像某些正確的XPath表達式無法按預期方式工作
match="node()[name() = 'File'][not(@KeyPath)]"
則匹配工作正常,並發現所有缺少的keyPath屬性,它的文件節點,但如果我使用XPath的另一種表達像
match="//File[not(@KeyPath)]"
然後它找不到任何匹配。
總的來說,我也無法使用標準的XPath /,//,。,..,但是,下面在它的XPath例如一塊效果很好
<xsl:template match="node()[name() = 'File']
[contains(@Source, 'First.dll') or
contains(@Source, 'Second.dll')]
[not(@Assembly)]">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
<xsl:attribute name="Assembly">.net</xsl:attribute>
<xsl:attribute name="KeyPath">yes</xsl:attribute>
</xsl:copy>
</xsl:template>
但類似/bookstore/book[@lang='en']
是行不通的。也許,我在我的XSL文件的開始部分缺少一些描述,以便能夠識別這樣的Xpaths。
請發佈一個可重現的例子 - 請參閱:[mcve]。 –