繁体   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