2013-05-30 252 views
1

輸入XML:XSLT腳本擺脫嵌套子節點

<tree> 
    <node name="GrandParent"> 
    <node name="Parent1"> 
     <qualifier>Fat</qualifier> 
    </node> 
    <node name="Parent2"> 
     <qualifier>Slim</qualifier> 
     <node name="Child1"> 
     <qualifier>Tall</qualifier> 
     </node> 
     <node name="Child2"> 
     <qualifier>Short</qualifier> 
     </node> 
    </node> 
    </node> 
</tree> 

需要的輸出:

<tree> 
    <node name="GrandParent-Parent1"> 
    <qualifier>Fat</qualifier> 
    </node> 
    <node name="GrandParent-Parent2"> 
    <qualifier>Slim</qualifier> 
    </node> 
    <node name="GrandParent-Parent2-Child1"> 
    <qualifier>Tall</qualifier> 
    </node> 
    <node name="GrandParent-Parent2-Child2"> 
    <qualifier>Short</qualifier> 
    </node> 
</tree> 

我希望得到一個優化XSLT腳本實現相同。請幫幫我。

(注:給定的輸入僅僅是一個樣品的子節點可以被嵌套到任意深度。)

+0

請顯示您遇到問題的XSLT樣式表。 – Borodin

+0

我現在沒有任何XSLT腳本:( 我只是一個初學者,如果可以的話,請幫助我 –

+0

我在尋找,我也嘗試了一些小例子,但是我必須讓這個工作在tommorow本身完成。 這就是爲什麼我要求一些專家的幫助。 不要誤解我。 –

回答

2

下面是一些提示,你指出正確的方向:

  • 獲取到知道<xsl:template><xsl:apply-templates>說明;他們將成爲解決這個問題的中堅力量。
  • 瞭解`concat()'函數。這將有助於您正在尋找的命名方案改變。
  • 成爲舒適與XPath軸(特別是parent::*ancestor::*和相對的XPath像../../../

此外,看看這個問題(以及隨後的回答) - 它可能在有用的場景,以及:Merge successive descendant nodes into one

這聽起來像你有困難,明天的最後期限,但展望未來,我會建議花時間來閱讀XSLT/XPath的好材料,可以幾個在這裏找到:https://stackoverflow.com/questions/339930/any-good-xslt-tutorial-book-blog-site-online/341589#341589

+0

非常感謝你的幫助:) –

+0

@IntelligentYahoo - 我已經用實際幫助的方式更新了我的答案。 – ABach

+0

再thanx ABACH..Hope我可以很快找到解決方案:) :) –