繼my last answered question串聯的屬性,我現在正在試圖刪除的兩個屬性,並使用他們的連接值創造一個新問題:XSLT:未知名
輸入:
<A>
<B>
<elemX att1="SN:" att2="toto1" att3="tata" SerialNumber="123X" />
<elemY att1="SN:" att2="toto2" att3="tata" SerialNumber="123Y" />
</B>
<B>
<elemX att1="tata1" att2="SN:" att3="toto" SerialNumber="456X" />
<elemY att1="tata2" att2="SN:" att3="toto" SerialNumber="456Y" />
</B>
<B>
<elemX att1="toto1" att2="tata" att3="SN:" SerialNumber="789X" />
<elemY att1="toto" att2="tata2" att3="SN:" SerialNumber="789Y" />
</B>
所需輸出:
<A>
<B>
<elemX SerialHarnessNumber="SN:"123X att2="toto1" att3="tata" />
<elemY SerialHarnessNumber="SN:123Y" att2="toto2" att3="tata" />
</B>
<B>
<elemX att1="tata1" SerialHarnessNumber="SN:456X" att3="toto" />
<elemY att1="tata2" SerialHarnessNumber="SN:456Y" att3="toto" />
</B>
<B>
<elemX att1="toto1" att2="tata" SerialHarnessNumber="SN:789X" />
<elemY att1="toto" att2="tata2" SerialHarnessNumber="SN:789Y" />
</B>
元素的順序在這裏並不重要。
要做到這一點,我用下面的XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*[.='SN:']" >
<xsl:attribute name="SerialHarnessNumber">
<xsl:value-of select="concat('SN:', @SerialNumber)" />
</xsl:attribute>
</xsl:template>
<xsl:template match="@SerialNumber" />
就目前而言,我只設法顯示 「SN:」 在的SerialNumber屬性,但SerialHarnessNumber不與它連接,雖然我用@SerialNumber,這是一種先前在另一個XSLT上工作的語法。
我認爲問題來自事實,即SN:值永遠不在同一個元素中。
如何連接SerialNumber值與attX的值?
差不多,確實......它的工作原理,非常感謝你! :) –