以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  关于Xsl控制title提示的问题,急!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=64279)


--  作者:qnjian
--  发布时间:7/1/2008 10:58:00 AM

--  关于Xsl控制title提示的问题,急!
1.XML文件类似下面:


<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="ConfigSpace.xsl"?>
<set>
        <feature_element code="AAAAB" description="Feature description 123" /> 
        <feature_element code="AAAAB" description="Feature description 123" />
       <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" /> 
 <feature_element code="AAAAB" description="Feature description 123" />  
 <feature_element code="AAAAB" description="Feature description 123" /> 
 <feature_element code="AAAAB" description="Feature description 123" /> 
 <feature_element code="AAAAB" description="Feature description 123" /> 
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" /> 
        <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" />
 <feature_element code="AAAAB" description="Feature description 123" /> 
 <feature_element code="AAAAB" description="Feature description 123" />  
 <feature_element code="AAAAB" description="Feature description 123" /> 
 <feature_element code="AAAAB" description="Feature description 123" /> 
 <feature_element code="AAAAB" description="Feature description 123" /> 
 <feature_element code="AAAAB" description="Feature description 123" />  
 
</set>

2.xsl 文件:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"
xmlns="http://www.w3.org/TR/REC-html40">
 
 <xsl:script><![CDATA[

  
  var count = 500; //characters number limited.
  var flag = true; //flag to decide if show tail string  
  //Function to return features codes and descriptions
  function displayFeature(featureNode)
  {
      var code = featureNode.selectSingleNode("@code");
   var desc = featureNode.selectSingleNode("@description");
   count -= code.text.length + desc.text.length + 5; //5: 3 spaces, 1 colon, 1 comma.
   
   if(count>=0)
   {    
    return code.text + " " + ":" + " " + desc.text + ", ";    
   }   
   else if(flag)   
   {
    flag = false;
    return "There are more features which cannot be displayed here.";     
   }   
   else
   {
    return "";    
   } 
  }
  


    ]]></xsl:script>
 

 <xsl:template match="/">
  <xsl:apply-templates />
 </xsl:template>

 
 
 <xsl:template match="set">
       
          <html>
    <script language="javascript">
   
    </script>
    
              <table>
  <td class="feature" nowrap="nowrap" >
   <xsl:attribute name="colspan"><xsl:value-of select="@colspan" /></xsl:attribute>
   <xsl:attribute name="title"
    ><xsl:for-each select="feature_element"
     ><xsl:eval>displayFeature(this)</xsl:eval></xsl:for-each
   ></xsl:attribute>
    {...} 
  </td>
              </table>
           </html>
 </xsl:template> 
 
</xsl:stylesheet>

3.解释,所要实现的是在对应的TD项,鼠标移到上面,则显示相应的title提示。但是每个feature_element都要按code+空格+冒号+空格+description+逗号的形式显示,并尽可能在屏幕上显示满一行后,再换行。从上面的脚本可以看出,它还有字符限制,显示满指定的字符数后,即加一句话There are more features which cannot be displayed here.";这个脚本是我自己实现的。目的基本到,但是:
HTML TD的title属性里的内容,如果包含任一空格,就可能会自动换行,不能在屏幕显示一行后再显示。而要求显示的内容里的空格却不能去掉,另外feature_element的description属性值也可能有空格。目前我找了太多资料也没有方法控制TD的title显示方式,把字符里的空格在脚本里转换成nbsp或 等代码形式,则它会把代码在提示中原样显示,这也不是我们需要的。

哪位高手有什么别的解决方案呀?急死了。另外最好不要用复杂的脚本重新实现TD的 title.

[此贴子已经被作者于2008-7-1 12:52:30编辑过]

--  作者:qnjian
--  发布时间:7/2/2008 5:11:00 PM

--  
没有高手有解决方案吗?
--  作者:Qr
--  发布时间:7/7/2008 12:30:00 PM

--  
title基本上没办法控制其显示方式。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
109.375ms