【发布时间】:2011-06-06 18:43:39
【问题描述】:
我需要能够从平面树创建嵌套列表。例如,输入可能是这样的:
<root>
<h1>text</h1>
<list level="1">num1</list>
<list level="1">num2</list>
<list level="2">sub-num1</list>
<list level="2">sub-num2</list>
<list level="3">sub-sub-num1</list>
<list level="1">num3</list>
<p>text</p>
<list>num1</list>
<list>num2</list>
<h2>text</h2>
</root>
并且输出应该嵌套如下:
<root>
<h1>text</h1>
<ol>
<li>num1</li>
<li>num2
<ol>
<li>sub-num1</li>
<li>sub-num2
<ol>
<li>sub-sub-num1</li>
</ol>
</li>
</ol>
</li>
<li>num3</li>
</ol>
<p>text</p>
<ol>
<li>num1</li>
<li>num2</li>
</ol>
<h2>text</h2>
</root>
我尝试了一些方法,但似乎无法获得它。任何帮助是极大的赞赏。 注意:我需要使用 XSLT 1.0 来执行此操作。
【问题讨论】:
-
@Phrog:不是这样。那里的树由结构 a 定义。这使用节点顺序和深度属性。
-
很好的问题,+1。看我的答案,这比@Flack 的简单(不调用模板,不传递参数),可能比@Flack 的答案短,(我的 66 行,他的 53 行,但他的要宽得多,需要水平滚动)。
标签: xml xslt xpath xslt-grouping