使用xml属性生成动态html表

使用xml属性生成动态html表,html,xml,dynamic,html-table,Html,Xml,Dynamic,Html Table,我相信我有一个非常有趣的问题要解决。我有一个类似这样的XML: <elements> <element name="nam1" val="John" xpos="10" ypos="10" /> <element name="nam3" val="Mark" xpos="10" ypos="30" /> <element name="nam4" val="Rick" xpos="50" ypos="30" /> <elemen

我相信我有一个非常有趣的问题要解决。我有一个类似这样的XML:

<elements>
  <element name="nam1" val="John" xpos="10" ypos="10" />
  <element name="nam3" val="Mark" xpos="10" ypos="30" />
  <element name="nam4" val="Rick" xpos="50" ypos="30" />
  <element name="nam5" val="Jeff" xpos="10" ypos="50" />
  <element name="nam6" val="Dean" xpos="50" ypos="50" />
  <element name="nam2" val="Scott" xpos="50" ypos="10" />
xml中元素的位置可能不是连续的

我必须将其转换为HTML表。TRs和TDs的内容需要根据XML的xpos和ypos属性进行动态设置。。输出应该如下所示:

<table>
    <tr>
       <td>John</td><td>Scott</td>
    </tr>
    <tr>
       <td>Mark</td><td>Rick</td>
    </tr>
    <tr>
       <td>Jeff</td><td>Dean</td>
    </tr>
</table>
当XPO或YPO不完全相同,但相邻两个元素略有不同时,事情会变得更复杂。。 e、 g


有什么办法可以做到这一点吗?使用xslt或Java/Javascript dom解析器?还是别的什么?如何实现呢?

最简单的方法是编写小型java代码,对其进行解析并将其转换为所需的格式。 使用xslt进行操作非常复杂。 实际上,使用xslt是一场噩梦,特别是如果您想在以后维护它并更改规则的话。
java代码在将来很容易理解和维护,但它会很长。

我不敢尝试用XSLT解决这个问题,因为XSLT适合于简单、基本的转换。虽然有可能成功,但在这个过程中可能会让你发疯

至于解决这个问题:

使用四舍五入或类似方法解决1/2偏差问题 对数据进行排序。 用已排序的数据创建一个表应该很简单 现在,我想你会问,而不是排序?因为太贵了,不管怎样。答:您将以某种方式对数据进行排序。在内存中创建一个巨大的地图并根据坐标向其添加元素是一种排序。这是不明显的


[编辑]也许这个技巧也能奏效:使用div和position:absolute代替表格,并缩放坐标,直到文本不再重叠。这将模拟一个表格,但它是否适用于您取决于坐标是否真正意味着什么,即它们不是随机的,但其他一些系统使用它们来布局数据

感谢您的快速响应。。好吧,我想xslt是不可能的。使用java解析器,我同意我需要以某种方式对列表进行排序。。但我怎么知道它是2列、3列还是4列表呢?在舍入和排序之后,将XPO的值添加到一个集合中。集合的大小==列数。好的,我想xslt是不可能的。使用java解析器,我同意我需要以某种方式对列表进行排序。。但我怎么知道它是2列表、3列表还是4列表呢?
<elements>
  <element name="nam1" val="John" xpos="10" ypos="12" />
  <element name="nam3" val="Mark" xpos="11" ypos="30" />
  <element name="nam4" val="Rick" xpos="53" ypos="32" />
  <element name="nam5" val="Jeff" xpos="09" ypos="52" />
  <element name="nam6" val="Dean" xpos="51" ypos="51" />
  <element name="nam2" val="Scott" xpos="50" ypos="10" />
</elements>