以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  请教一个xsl问题   急  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=7034)


--  作者:Flash2004
--  发布时间:4/26/2004 4:31:00 PM

--  请教一个xsl问题   急
<?xml version="1.0" encoding="GB2312" ?>
<?xml-stylesheet type='text/xsl' href='3.xsl'?>
<gbook >
 <title>标题123</title>
 <message>
  <EndState>1</EndState>
  <Content><![CDATA[要用到什么参数啊<br>
是不是很复杂?]]>
</Content>
 </message>
</gbook>


3.xsl文件中有
<xsl:value-of select="Content" />

可是在IE中那个"<br>"不能换行。怎么办阿?


--  作者:KAI
--  发布时间:4/26/2004 5:22:00 PM

--  
不换行,结果是不是 <br>?
--  作者:Flash2004
--  发布时间:4/26/2004 5:26:00 PM

--  
显示效果如图

此主题相关图片如下:
按此在新窗口浏览图片
--  作者:KAI
--  发布时间:4/26/2004 5:26:00 PM

--  
<xsl:value-of select="Content">
  <xsl:eval no-entities="t">parseXML(this.text)</xsl:eval>
</xsl:value-of>
<xsl:script language="javascript">
function parseXML(txt){
 return(txt.replace(/[&lt;]/g,"&amp;lt;").replace(/\n/g,"&lt;br&gt;").replace(/\s/g,"&amp;nbsp;"))
}
</xsl:script>
--  作者:Flash2004
--  发布时间:4/26/2004 5:31:00 PM

--  
出错了
看图

此主题相关图片如下:
按此在新窗口浏览图片
--  作者:KAI
--  发布时间:4/26/2004 5:43:00 PM

--  
value-of 改成for-each
--  作者:KAI
--  发布时间:4/26/2004 5:46:00 PM

--  
用我刚才的函数后,<br>要变成换行,直接用回车代替即可,
否则就一定要改成<br/>并放到<![CDATA[]]>之外
--  作者:Flash2004
--  发布时间:4/26/2004 5:55:00 PM

--  
晕 还是不行
我的系统是
win2003 IIS6 IE6.0.3790.0 XML5.0

******************************
我定义了一个变量<xsl:variable name = "index" >1</xsl:variable>
我怎么改变他的值?


--  作者:Flash2004
--  发布时间:4/26/2004 6:06:00 PM

--  
KAI你好
问题解决了!
请看 注意红色的字
<xsl:value-of select="Content" disable-output-escaping="yes"/>
加了一个属性 就搞定了
谢谢你的帮助

******************************
我还有一个小问题
我定义了一个变量<xsl:variable name = "index" >1</xsl:variable>
我怎么改变他的值?


--  作者:KAI
--  发布时间:4/26/2004 6:15:00 PM

--  
1,好!我也学一下。

2,<xsl:param>


--  作者:Flash2004
--  发布时间:4/26/2004 6:22:00 PM

--  
<xsl:param>是定义模板参数的东东

我要的效果是 和一般编程语言中的变量一样
比如
var index=0;
while(index<10){
//do something
index++;
}


能作到吗?


--  作者:KAI
--  发布时间:4/26/2004 6:32:00 PM

--  
思想是一样的,param作为局部变量可动态改变,variable 作为全局不变量不可变。

<xsl:apply-templates select="a"><xsl:with-param name="myVar">4</xsl:with-param></xsl:apply-templates><!--这里就动态改变了myVar的值-->

<xsl:template match="a">
<xsl:param name="myVar">1212121</xsl:param>
</xsl:template>


--  作者:Flash2004
--  发布时间:4/26/2004 6:41:00 PM

--  
你给的代码 我明白
不过我要他可以自增
就象我给的C代码中的index一样

这样可以吗?
<xsl:apply-templates select="a"><xsl:with-param name="myVar"><xsl:value-of select="$myVar+1"/></xsl:with-param></xsl:apply-templates>


--  作者:KAI
--  发布时间:4/26/2004 8:10:00 PM

--  
这里有过实例。我转的孟子的文章
——————————————————————
XSLLoop.xml

<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="XSLLoop.xsl"?>
<net_lover>孟子E章</net_lover>

XSLLoop.xsl

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:copyRight="http://xml.sz.luohuedu.net/">
  <!-- 下面的三个变量可以由XML中取得,做为例子,这里直接定义了初始值 -->
  <!-- 定义初始值 -->
  <xsl:variable name="varStart" select="0"/>
  <!-- 定义结束值 -->
  <xsl:variable name="varEnd" select="35"/>
  <!-- 定义循环步长 -->
  <xsl:variable name="varStep" select="2"/>
  <xsl:template match="/">
    <xsl:call-template name="MyLoopFun">
      <xsl:with-param name="varStart" select="$varStart">
      </xsl:with-param>
    </xsl:call-template>
  </xsl:template>
  <xsl:template name="MyLoopFun">
    <xsl:param name="varStart"/>
    <xsl:if test="$varStart &lt; $varEnd">
      <!-- 输出格式定义 -->
      <a target="_blank" href="http://xml.sz.luohuedu.net/?{$varStart}">
        <xsl:attribute name="title"><xsl:value-of select="$varStart"/></xsl:attribute>
        <xsl:value-of select="$varStart"/>
      </a>
      <xsl:if test="$varStart &lt; ($varEnd - $varStep)"> , </xsl:if>
      <xsl:call-template name="MyLoopFun">
        <xsl:with-param name="varStart">
          <xsl:value-of select="$varStart + $varStep"/>
        </xsl:with-param>
      </xsl:call-template>
    </xsl:if>
  </xsl:template>
</xsl:stylesheet>


--  作者:Flash2004
--  发布时间:4/27/2004 10:54:00 AM

--  
不错 谢谢

不过好像很麻烦阿


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