【发布时间】:2020-11-15 13:21:40
【问题描述】:
关于 XML/XSL 的一个小问题。
我有以下 XML:
<Employees>
<Employee> <ID>1</ID> <WeekID>1</WeekID> <DayID>1</DayID> <Hours>5</Hours> </Employee>
<Employee> <ID>1</ID> <WeekID>1</WeekID> <DayID>1</DayID> <Hours>4</Hours> </Employee>
<Employee> <ID>1</ID> <WeekID>1</WeekID> <DayID>2</DayID> <Hours>7</Hours> </Employee>
<Employee> <ID>1</ID> <WeekID>2</WeekID> <DayID>1</DayID> <Hours>5</Hours> </Employee>
<Employee> <ID>1</ID> <WeekID>2</WeekID> <DayID>3</DayID> <Hours>8</Hours> </Employee>
<Employee> <ID>2</ID> <WeekID>1</WeekID> <DayID>1</DayID> <Hours>5</Hours> </Employee>
<Employee> <ID>2</ID> <WeekID>2</WeekID> <DayID>4</DayID> <Hours>4</Hours> </Employee>
</Employees>
我想像这样分层这个 XML:
<Employees>
<Employee>
<ID>1</ID>
<Weeks>
<Week>
<WeekID>1</WeekID>
<Days>
<Day>
<DayID>1</DayID>
<Hours>5</Hours>
<Hours>4</Hours>
</Day>
<Day>
<DayID>2</DayID>
<Hours>7</Hours>
</Day>
</Days>
</Week>
<Week>
<WeekID>2</WeekID>
<Days>
<Day>
<DayID>1</DayID>
<Hours>5</Hours>
</Day>
<Day>
<DayID>3</DayID>
<Hours>8</Hours>
</Day>
</Days>
</Week>
</Weeks>
</Employee>
<Employee>
<ID>2</ID>
<Weeks>
<Week>
<WeekID>1</WeekID>
<Days>
<Day>
<DayID>1</DayID>
<Hours>5</Hours>
</Day>
</Days>
</Week>
<Week>
<WeekID>2</WeekID>
<Days>
<Day>
<DayID>4</DayID>
<Hours>4</Hours>
</Day>
</Days>
</Week>
</Weeks>
</Employee>
</Employees>
这可能吗? 如果是这样,要应用的 XSL 转换是什么(仅限 XSLT 1.0)?
谢谢, 弗洛伦特
喝咖啡会妨碍你入睡。另一方面,睡觉会阻止你喝咖啡。
【问题讨论】:
-
与
xsl:for-each-group分组,看来您想以嵌套方式执行此操作 3 次。 -
这是一个分组问题。 XSLT 1.0 中的分组最好使用 Muenchian 方法:jenitennison.com/xslt/grouping/muenchian.html。有关多级 Muenchian 分组的示例,请参见:stackoverflow.com/a/58525214/3016153。