高招就是循环读节点,自己拼html字符串。

解决方案 »

  1.   

    用xsl转换,等楼下的给答案吧,呵呵
      

  2.   

    做个XSL就行了
    然后:
    <asp:xml DocumentSource="xxx.xml" TransformSource="xxx.xsl" runat="server" />
      

  3.   

    说清楚究竟要怎么转先,可以帮你写个XSLT,不过这种事情最好还是自己去做唔
      

  4.   

    看看xml和转化后的html就知道了。
    node的type如果是table,表示的为一张表,如果为cell,则对应的是<td />
    table的cols表示它的最大列数,cell的cols表示为colspan值,即在<table />的<tr/>中所占的格数。
    一个Table(TMain)下面可以有多个Table和Cell,如果下面为Table(t1)的话,则单独占TMain的一行,表示为
    <TR><Table id="t1" /></TR>
    如果TMain下面的相邻Cell的cols加起来等于(有时会大于)TMain的cols的话,那么前面的cells占一行,后面的cells重新开始循环,如上面的
        <node type="cell" cols="1" />
        <node type="cell" cols="2" />    <node type="cell" cols="1" />
        <node type="cell" cols="1" />
        <node type="cell" cols="1" />    <node type="cell" cols="1" />
    表示为html 标签时就是
        <tr><td colspan="1" /><td colspan="2" /></tr>    <tr><td colspan="1" /><td colspan="1" /><td colspan="1" /></tr>    <tr><td colspan="1" /></tr>
    这里困难的就是累计那个cols,然后再重新再table添加一个tr。
    ------------------------------
    我是这样想的,先设两个变量,值分别为<tr>,</tr>
    然后再依次读取一个node下面的node,但是现在实现起来还是有点困难,希望高手们能给我解惑。
    thank advance!
      

  5.   

    如果不用XSLT的话(说实话这玩意性能不行)
    可以使用XmlTextReader搞定
    你这种的应该很容易,嗯,到SDK上找例子
      

  6.   

    请大家尽量具体点哦,最好给出点关键的代码片断,我刚刚研究xslt,还有许多不懂的地方需要向大家请教的。^_^
    附带几个小问题:
     怎么得到一个节点在其父节点中的位置?例如我在为一个node(xxx/node[1])应用一个template时,它的position()总是为一,除非我选择的是xxx/node;如果使用参数就太麻烦了。
    thanks
      

  7.   

    呵呵,我就是想在外部实现,如果使用xml下面的类库就不方便extensible了^_^