我有以下示例 XML:
<root>
<Entities>
<Entity>
<property type=”Name”>Name1</property>
<property type=”Parent_id”>-1</property>
<property type=”id”>1</property>
</Entity>
<Entity>
<property type=”Name”>Name2</property>
<property type=”Parent_id”>1</property>
<property type=”id”>2</property>
</Entity>
<Entity>
<property type=”Name”>Name3</property>
<property type=”Parent_id”>2</property>
<property type=”id”>3</property>
</Entity>
<Entity>
<property type=”Name”>Name4</property>
<property type=”Parent_id”>2</property>
<property type=”id”>4</property>
</Entity>
<Entity>
<property type=”Name”>Name5</property>
<property type=”Parent_id”>3</property>
<property type=”id”>5</property>
</Entity>
</Entities>
</root>
XML 由实体组成,每个实体都有一个父 ID 和一个 ID。总有一个这样的实体,其 Parent Id = -1,这意味着它是根实体。
我想要一个可以将这种 XML 转换为 HTML UL 的 XSL,其中描述了父子关系。
例如,对于上面的示例,输出将是:
<ul>
<li>Name1</li>
<ul>
<li>Name2</li>
<ul>
<li>Name3</li>
<ul>
<li>Name5</li>
</ul>
<li>Name4</li>
</ul>
</ul>
</ul>
XML是动态的,实体的数量不是一个常数,唯一可以保证的是父id为-1的实体的存在,这标志着它是所有的根实体。
我一直在尝试为此编写 XSLT,但最终以长期运行的方式结束,并且无法想到任何解决此问题的策略。
请帮忙扔救生衣,