我的當前樣式表如下。它會查找<IMFile>
的所有節點並刪除這些子節點。我想增加另一個條件,但我不確定如何做到這一點。XSLT:將變量保存爲XML
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!-- Removes red boxes -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<!-- Strip IMFile elements -->
<xsl:template match="IMFile[@src='@variable']"/>
</xsl:stylesheet>
所以下面是我需要看的兩個部分。主要我只需要知道如何獲取和使用變量。我想查看這個源代碼部分,並保存1個id,當src="Red_Box.png"
時引用。並將此變量應用於我的代碼(替換@variable)。此ID反映<IMFile>
元素的@src
屬性。
<SourceBin id="3" >
<Source id="4" src="something.trec" lastMod="20161202T191501" rect="(0,0,1920,1080)">
<SourceTrack range="(0,9463)" type="0" editRate="30/1" trackRect="(0,0,1920,1080)" sampleRate="0/1" bitDepth="0" numChannels="0" filename="something.trec.trec!Strack0.tsc2" metaData="something.trec;" />
</Source>
<Source id="5" src="screenshot_449.png" lastMod="20161202T191503" rect="(0,0,1912,1078)" >
<SourceTrack range="(0,1)" type="1" editRate="10000000/1" trackRect="(0,0,1912,1078)" sampleRate="0/1" bitDepth="24" numChannels="0" filename="" metaData="" />
</Source>
<Source id="6" src="Red-Box.png" lastMod="20161202T191503" rect="(0,0,1600,1200)" >
<SourceTrack range="(0,1)" type="1" editRate="10000000/1" trackRect="(0,0,1600,1200)" sampleRate="0/1" bitDepth="32" numChannels="0" filename="" metaData="" />
</Source>
</SourceBin>
<IMFile id="6907" start="754" duration="8" scalar="1/1" mediaStart="0/1" mediaDuration="1/1" trackNumber="0" src="5" trimStartSum="67/1" >
<IMFile id="6907" start="754" duration="8" scalar="1/1" mediaStart="0/1" mediaDuration="1/1" trackNumber="0" src="6" trimStartSum="67/1" >
<IMFile id="6907" start="754" duration="8" scalar="1/1" mediaStart="0/1" mediaDuration="1/1" trackNumber="0" src="6" trimStartSum="67/1" >
如果我有以上3 IMFile我希望它看到,其中2使用src =「6」(這是使用Red_Box.png源孩子的id)。而導致兩者的刪除:(!)
<IMFile id="6907" start="754" duration="8" scalar="1/1" mediaStart="0/1" mediaDuration="1/1" trackNumber="0" src="5" trimStartSum="67/1" >
你會有什麼期望的輸出是什麼樣子?順便說一下,你喜歡過濾掉XML中的Callout元素在哪裏? [mcve]會有幫助(對於我們來回答你的問題)。 – zx485