以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  [求助]如何能实现我要的效果呢?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=54295)


--  作者:yyy6210
--  发布时间:10/25/2007 10:50:00 AM

--  [求助]如何能实现我要的效果呢?
请问如何实现才能使DiskArrayname 中只有dname
aaa_value中只有a_value呢?

还有,如何 才能在dname1和dname2间加一个横线,将这个表格分成两行呢?

现在的效果是下面的,2楼图片:


------------------------------------------------------------------------------------------------
1.xml
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="1.xsl"?>
<ServerGroup>
<Server ip="172.49.59.44" port="8020" >
<DAS>
<DiskArray name="dname1">
<aaaa>a_value1</aaaa>
</DiskArray>
<DiskArray name="dname2">
<aaaa>a_value2</aaaa>
</DiskArray>
</DAS>
</Server>

<Server ip="172.98.56.59" port="8020">
<DAS>
<DiskArray name="dname3">
<aaaa>a_value3</aaaa>
</DiskArray>
</DAS>
</Server>
</ServerGroup>
--------------------------------------------------------------------------------------------------------------
1.xsl

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<HTML>
<HEAD><TITLE>serverinfo</TITLE></HEAD>
<BODY>
<TABLE border="1" cellspacing="0">
<H>AAAAAAAAAAAAAAA</H>
<tr>
<TH>Serverip</TH>
<TH>port</TH>
<TH>DiskArrayname</TH>
<TH>aaa_value</TH>
</tr>
<xsl:apply-templates select="ServerGroup/Server"/>
</TABLE>
</BODY>
</HTML>
</xsl:template>

<xsl:template match="ServerGroup/Server">
<xsl:for-each select="." >
<tr>
<td>
<xsl:value-of select="@ip"/>
</td>
<td>
<xsl:value-of select="@port"/>
</td>
<td>
<!--here only want to printf the name_prop of diskarray-->
<xsl:apply-templates select="DAS/DiskArray"/>
</td>
<td>
<!--here only want to printf the aaaa_element of diskarray-->
<xsl:apply-templates select="DAS/DiskArray"/>
</td>
</tr>
</xsl:for-each>

</xsl:template>


<xsl:template match="DAS/DiskArray">
<table cellspacing = "0">
<xsl:for-each select="." >
<tr>
<td><xsl:value-of select="@name"/></td>
<td><xsl:value-of select="aaaa"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>



--  作者:yyy6210
--  发布时间:10/25/2007 10:51:00 AM

--  
图片怎么上传不了?


此主题相关图片如下:
按此在新窗口浏览图片


--  作者:Qr
--  发布时间:10/25/2007 11:40:00 AM

--  
反正你的DiskArray模板已使用table,那就可以直接通过CSS来设置dname1和dname2间的线为可见,边线不可见就行了。

<table border="1" style="具体看CSS吧,早记了,呵呵" cellspacing = "0">


--  作者:yyy6210
--  发布时间:10/25/2007 11:56:00 AM

--  
最重要的是第一个问题哈~~~~~
--  作者:Qr
--  发布时间:10/25/2007 1:05:00 PM

--  
去xsl:for-each改用xsl:apply-templates,再写与DiskArray、dname有关的xsl:template模板就好了。

--  作者:yyy6210
--  发布时间:10/25/2007 2:32:00 PM

--  
没有明白哈,去哪个循环?循环不应该去吧
--  作者:Qr
--  发布时间:10/25/2007 5:02:00 PM

--  
试试看不就知道咯
--  作者:yyy6210
--  发布时间:10/26/2007 2:28:00 PM

--  
还是不知道思路
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
125.000ms