2009-07-22 122 views
1

我有一個ejb-jar.xml,標籤中沒有'id'屬性。xml轉換 - 根據當前節點向前一個節點添加屬性

什麼是解決這個問題的最佳方法?可以使用XSLT嗎?

<session> 
    <ejb-name>EJB1</ejb-name> 
    <local-home>x.E1LH</local-home> 
    <local>x.E1L</local> 
    <ejb-class>x.E1EJB</ejb-class> 
    <session-type>Stateless</session-type> 
    <transaction-type>Container</transaction-type> 
</session> 

應改寫爲:

<session id="EJB1"> <!--ejb-name gets added as an "id" attribute --> 
    <ejb-name>EJB1</ejb-name> 
    <local-home>x.E1LH</local-home> 
    <local>x.E1L</local> 
    <ejb-class>x.E1EJB</ejb-class> 
    <session-type>Stateless</session-type> 
    <transaction-type>Container</transaction-type> 
</session> 

回答

1

XSLT肯定能做到這一點...但它確實取決於你需要做什麼。

喜歡的東西(未經測試)

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

<xsl:template match="session"> 
    <session id="{ejb-name}"> 
     <xsl:apply-templates select="@* | node()"/> 
    </session> 
</xsl:template> 
+0

+1打我給它。我要寫完全一樣的東西。 – Tomalak 2009-07-22 08:17:38

相關問題