簡體   English   中英

XSLT腳本擺脫嵌套的子節點

[英]XSLT script to get rid of nested child nodes

輸入XML:

<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腳本來實現相同目的。 請幫我。

(注意:給定的輸入只是一個示例。子節點可以嵌套到任何深度。)

以下是一些提示,可指示您正確的方向:

  • 了解<xsl:template><xsl:apply-templates>指令; 它們將是解決此問題的骨干。
  • 也了解`concat()'函數。 這將有助於您要進行的命名方案更改。
  • 熟悉XPath軸(尤其是parent::*ancestor::*和相對的XPath,例如../../../

此外,請查看此問題(及后續答案)-在您的方案中也可能有用:將連續的后代節點合並為一個

聽起來您明天的工作期限很艱巨,但是展望未來,我建議您花些時間閱讀XSLT / XPath上的優秀材料。 您可以在這里找到幾個: https : //stackoverflow.com/questions/339930/any-good-xslt-tutorial-book-blog-site-online/341589#341589

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM