XSL如何转换XSQL结果集到特定格式

No_1gogo 2008-01-14 03:41:13
我现在有一个结果集,通过XSQL里的SQL语句选出。
[select c.company_name,
s.site_name,
i.installation_name installed_product,
step.step_name,
step.seqnum,
sv.server_name,
sv.address,
sva.port_num,
sva.access_method,
sva.username,
sva.pswd, sva.domain
from wmsys.company c,
wmsys.site s,
wmsys.installation i,
wmsys.server sv,
wmsys.srv_acct sva,
wmsys.site_install si,
wmsys.step
where c.company_id = s.company_id
and s.site_id = si.site_id
and si.installation_id = i.installation_id
and i.installation_id = step.installation_id
and step.server_id=sv.server_id
and step.srv_acct_id = sva.srv_acct_id]
产生了如下的XML:
<rowset>
<row num="1">
<company_name>SONY</company_name>
<site_name>carson007</site_name>
<installed_product>LABOR</installed_product>
<step_name>APP</step_name>
<seqnum>2</seqnum>
<server_name>App Server</server_name>
<address>192.168.1.2</address>
<port_num>4500</port_num>
<access_method>TELNET</access_method>
<username>SUPER</username>
<pswd>SUPER</pswd>
<domain>DOM1</domain>
</row>
<row num="2">
<company_name>SONY</company_name>
<site_name>carson007</site_name>
<installed_product>LABOR</installed_product>
<step_name>GUI</step_name>
<seqnum>1</seqnum>
<server_name>App Server</server_name>
<address>192.168.1.2</address>
<port_num>4500</port_num>
<access_method>TELNET</access_method>
<username>SUPER</username>
<pswd>SUPER</pswd>
<domain>DOM1</domain>
</row>
<row num="3">
<company_name>SONY</company_name>
<site_name>carson007</site_name>
<installed_product>WMD</installed_product>
<step_name>APP</step_name>
<seqnum>1</seqnum>
<server_name>Report Server</server_name>
<address>192.168.1.4</address>
<port_num>4600</port_num>
<access_method>TELNET</access_method>
<username>SUPER</username>
<pswd>SUPER</pswd>
<domain>DOM1</domain>
</row>
</rowset>

但是我想在用xsl显示的时候,该xml的格式能转换成如下的样子,该怎么做?

<rowset>
<row num="1">
<company>
<company_name>SONY</company_name>
<site>
<site_name>carson007</site_name>
<product>
<installed_product>LABOR</installed_product>
<step>
<step_name>APP</step_name>
<seqnum>2</seqnum>
<server_name>App Server</server_name>
<address>192.168.1.2</address>
<port_num>4500</port_num>
<access_method>TELNET</access_method>
<username>SUPER</username>
<pswd>SUPER</pswd>
<domain>DOM1</domain>
</step>
<step>
<step_name>GUI</step_name>
<seqnum>1</seqnum>
<server_name>App Server</server_name>
<address>192.168.1.2</address>
<port_num>4500</port_num>
<access_method>TELNET</access_method>
<username>SUPER</username>
<pswd>SUPER</pswd>
<domain>DOM1</domain>
</step>
</product>
<product>
<installed_product>WMD</installed_product>
<step>
<step_name>APP</step_name>
<seqnum>1</seqnum>
<server_name>App Server</server_name>
<address>192.168.1.2</address>
<port_num>4500</port_num>
<access_method>TELNET</access_method>
<username>SUPER</username>
<pswd>SUPER</pswd>
<domain>DOM1</domain>
</step>
</product>
</site>
</company>
</row>
</rowset>
...全文
87 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
好像没那么简单,呵呵.
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
都是很好的建议! 值得学习
cds27 2008-01-21
  • 打赏
  • 举报
回复
直接修改XSLT模板
cloudgamer 2008-01-16
  • 打赏
  • 举报
回复
帮顶
No_1gogo 2008-01-15
  • 打赏
  • 举报
回复
上面的问题已经解决,又出来一个新问题,我想根据installed_product的值来显示不同的内容,我现在是把判断的值是写死的,如<xsl:if test="installed_product='LABOR'">。我想在点击installed_product的时候,显示相对应的内容,如点击'LABOR'的时候,就显示'LABOR'的内容。谢谢了

<table border="1">
<tr>
<td valign="top">
<table border="1" >
<xsl:for-each select="page/rowset/row/installed_product[not(preceding::installed_product=.)]">
<tr>
<td >
<xsl:value-of select ="." />
</td>
</tr>
</xsl:for-each>
</table>
</td>
<td>
<table border="1">
<xsl:for-each select="page/rowset/row">
<xsl:sort select="seqnum"/>
<xsl:if test="installed_product='LABOR'">
<tr>
<td><xsl:value-of select ="step_name" /></td>
<td><xsl:value-of select ="address" /></td>
<td><xsl:value-of select ="access_method" /></td>
<td><xsl:value-of select ="port_num" /></td>
<td><xsl:value-of select ="username" /></td>
<td><xsl:value-of select ="pswd" /></td>
<td><xsl:value-of select ="domain" /></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</td>
</tr>
</table>

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧