以文本方式查看主题

-  中文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=6591)


--  作者:likebbs
--  发布时间:4/9/2004 9:34:00 AM

--  [求助]XSL 条件模版的严重问题。。。
这是 x1.xml
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet  type="text/xsl" href="x1.xsl"?>
<wuj>
  <aaa>
 <a1>aaaa1</a1>
 <a2>aaaa2</a2>
  </aaa>
  <bbb>
 <b1>bbbb1</b1>
 <b2>bbbb2</b2>
  </bbb>
</wuj>

这是 x1.xsl
<?xml version="1.0"  encoding="GB2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
     <xsl:apply-templates match="wuj"/> </xsl:template>

<xsl:template match="wuj">
    <xsl:apply-templates match="aaa"/>
  <!-- 这里只调用了 aaa  ,但是 bbb 也会显示出来,这是怎么回事?-->
</xsl:template>

<xsl:template match="aaa">
这是 aaa  <BR/>
</xsl:template>


<xsl:template match="bbb">
   这是 bbb ... <BR/>
</xsl:template>

</xsl:stylesheet>

————————————————————————————
实际应用时 比上面 的要复杂许多,只能用 模版调用。。
如果 XSL 按照上面这样 自做多情 的话,会一团糟啊。。

哪位路过,帮忙看看,谢谢!谢谢!!!


--  作者:bestjamie
--  发布时间:4/9/2004 9:45:00 AM

--  
<aaa>和<bbb>是兄弟节点
对<wuj>来说是同一层的子节点
在仅匹配元素为<wuj>时
模版用于<aaa>和<bbb>对<wuj>来说都是一样的
我想或许是这样
如有不对请指教
我也是初学
谢谢


--  作者:小鞋子
--  发布时间:4/9/2004 9:56:00 AM

--  
汗....你的思想是不是有点框住了...不致于这样吧...

把多余的删除不就行了吗???

如果说你要动态的话改变,可以用其它如ASP或PHP之类的动态生成XSL..你可以参考风云舞的无数据库.net论坛


--  作者:likebbs
--  发布时间:4/9/2004 10:00:00 AM

--  
2004-04-09 09:46:00 橡皮灵魂(30311291)
好象是这样。。
不过,没提出解决方案呀。。
有很多这样的 节点。。
各有不同的用处。。。

2004-04-09 09:47:13 Jamie++猫猫(16896531)
你就是想只有出现<aaa>中aaaa1 aaaa2老

2004-04-09 09:47:18 Jamie++猫猫(16896531)
别的都不要,是吗
2004-04-09 09:47:39 Jamie++猫猫(16896531)
你没有说要什么结果 所以也不知道怎么解决啊

2004-04-09 09:48:47 橡皮灵魂(30311291)
我是这个意思。。
调用哪个才显示哪个。。
而不是让它全部都显示。。

比如我调用 :<xsl:apply-templates match="aaa"/>
就显示 aaa 模版里的。。

调用 :<xsl:apply-templates match="bbb"/>
就显示 bbb 模版里的。。
。。。。。。。。。。。

2004-04-09 09:49:24 Jamie++猫猫(16896531)
那你下面写的代码不就是这个功能吗

2004-04-09 09:50:25 橡皮灵魂(30311291)
是啊,理论上是这样。。。
我只调用了 aaa 模版。。
但是它连 bbb 也一块显示出来了。。


--  作者:likebbs
--  发布时间:4/9/2004 10:02:00 AM

--  
看来只有用 后台程序了。。。。
--  作者:likebbs
--  发布时间:4/9/2004 10:05:00 AM

--  
话外音:那个 ***的无数据库.net论坛 。。

说实话,只能算做功能稍强点 留言本  。。。。
而不是论坛。。。 汗~~ 。说多了。。。:(


--  作者:小鞋子
--  发布时间:4/9/2004 10:12:00 AM

--  
....看來大家對於動網論壇的毒害太深了..

功能少點也不算論壇:(


--  作者:likebbs
--  发布时间:4/9/2004 10:15:00 AM

--  
不过,我只 偷偷 借鉴了它的 UBB 函数。。:)
其他的没办法,我是用 ASP 的。。

它的 UBB 好象是 服务端运行的。。
我改成了 客户端 运行,只是还有些问题没解决掉。。。
现在没法实际应用。 。。 :(


--  作者:likebbs
--  发布时间:4/9/2004 10:23:00 AM

--  
我想其他的功能确实不用考虑那么多。。

起码要支持多个版面吧。。
只有一个版面,这个不是留言本吗??
如果要考虑到多个版面,程序写起来就不一样了。。。

不过,有一点这位大虾能把自己研究的成果 贡献出来。。
而且还写了整个框架的思路结构,从技术角度看,绝对 支持/佩服。

可惜,偶不会 。NET 。。。


--  作者:bestjamie
--  发布时间:4/9/2004 11:09:00 AM

--  
怎么从讨论程序变成讨论论坛版面了
呵呵
--  作者:bestjamie
--  发布时间:4/9/2004 11:10:00 AM

--  
以下是引用小鞋子在2004-4-9 9:56:34的发言:
汗....你的思想是不是有点框住了...不致于这样吧...

把多余的删除不就行了吗???

如果说你要动态的话改变,可以用其它如ASP或PHP之类的动态生成XSL..你可以参考风云舞的无数据库.net论坛


同意哦
我不是和你说了吗
既然后面已经实现这个功能了
你就把前面错的删除
不就行了吗
呵呵


--  作者:sam
--  发布时间:4/14/2004 10:02:00 AM

--  
<xsl:apply-templates match="wuj"/>
<xsl:apply-templates match="aaa"/>
改为
<xsl:apply-templates select="wuj"/>
<xsl:apply-templates select="aaa"/>
--  作者:likebbs
--  发布时间:4/15/2004 11:35:00 AM

--  
以下是引用sam在2004-4-14 10:02:28的发言:
<xsl:apply-templates match="wuj"/>
<xsl:apply-templates match="aaa"/>
改为
<xsl:apply-templates select="wuj"/>
<xsl:apply-templates select="aaa"/>


多谢!!


--  作者:faly
--  发布时间:4/15/2004 1:27:00 PM

--  
呵呵……
9494
不过论坛留言本怎么说呢……
功能特少的论坛和功能丰富的留言本……
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms