[xml] xml ,xsl,css 之乱搞

css|xml

做了一小段xml.与大家交流。
三个文件。(blue.xml blue.xsl blue.css )拷到本地同一目录下。

blue.xml:

<?xml version='1.0' encoding='GB2312'?>
<?xml:stylesheet type='text/xsl' href='blue.xsl'?>
<Topic>
  <Issue>
    <TopicId>000001</TopicId>
    <UserName>ycoe12</UserName>
    <RankName>超级用户</RankName>
    <TopicName>[JSP]Servlet中线程的问题</TopicName>
    <DateTime>2005-12-26 01:03:44</DateTime>
    <ReplyNum>2</ReplyNum>
    <ReadNum>68</ReadNum>
    <Content>请问一下怎样实现在Servlet里使用线程。比如用两线程,让一个线程与另一个线程通讯。
我的方法: implements Runnable 。生成后马上让它sleep。但是我不知道怎样让另一个线程在完成后通知此线程??(两个请求之间通讯)
我想在是通过检测HttpSession来判断另一个线程的进程的。但这样好像不太好。。。
谢谢</Content>
  </Issue>
<Replys>
  <Reply>
    <TopicID>000001</TopicID>
    <UserName>红色黑客</UserName>
    <RankName>经典杀手</RankName>
    <ReplyID>0001</ReplyID>
    <Content>这个应该用线程同步吧??</Content>
    <DateTime>2005-12-26 13:22:15</DateTime>
  </Reply>
  <Reply>
    <TopicId>000001</TopicId>
    <UserName>ycoe12</UserName>
    <RankName>超级用户</RankName> 
    <ReplyID>0002</ReplyID>
    <Content>不是,简单地说就是用一个线程完成后去通知另一个线程。。。不是,简单地说就是用一个线程完成后去通知另一个线程。。。不是,简单地说就是用一个线程完成后去通知另一个线程。。。</Content>
    <DateTime>2005-12-26 20:41:51</DateTime>
  </Reply>
</Replys>
</Topic>

blue.xsl:

<?xml version="1.0"  encoding="GB2312"?>
<!--
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="gb2312" version="4.0"/>
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="text()" >
<xsl:value-of/>
</xsl:template>
<xsl:template match="/">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312"/>
<title><xsl:value-of select="Topic/Issue/TopicName"/></title>
<link REL='Stylesheet' HREF='blue.css' TYPE='text/css'/>
</head>
<body>
<div id="divFrame">
 <div id="divTitle">
  <span id="spanTitleLeft"><xsl:value-of select="Topic/Issue/TopicName"/></span>
  <span id="spanTitleRight">作者:<xsl:value-of select="Topic/Issue/UserName"/> | <xsl:value-of select="Topic/Issue/RankName"/>| 发表时间:<xsl:value-of select="Topic/Issue/DateTime"/></span>
 </div>
 <div id="divMain">
  <xsl:apply-templates select="Topic/Issue/Content" />
 </div>
 <div id="divReply">
  <xsl:apply-templates select="Topic/Replys"/>
 </div>
</div>
</body>
</html>
</xsl:template>
<xsl:template match="Replys" >
 <xsl:for-each select="Reply"  >
  <div>
   <div id="replyPerson">回复人:<xsl:value-of select="UserName"/> | <xsl:value-of select="RankName"/>|</div>
   <div><xsl:apply-templates select="Content" /></div>
   <div>发表时间:<xsl:value-of select="DateTime"/></div>
  </div>
 </xsl:for-each>
</xsl:template>
<xsl:template match="Content">
 <xsl:apply-templates />
</xsl:template>
</xsl:stylesheet>

blue.css:

body
{
 text-align:center;
 background-color:#ffffff;
}
div
{
 font-family:Verdana;
 text-align:left;
}
#divFrame
{
 background-color:#CCCCCC;
 width:95%;
 padding:8px;
}
#divTitle
{
 background-color:#F7F3F7;
 border:1px solid black;
 width:100%;
 font-size:16px;
 font-weight:bold;
 line-height:30px;
 color:#0051A5;
 padding-left:10px;
}
#divMain
{
 font-size:14px;
 margin-top:5px;
 border:1px solid black;
 padding:10px;
 background-color:white;
}
#divReply
{
 background-color:#ffffff;
 margin-top:5px;
 margin-bottom:5px;
 border:1px solid black;
 width:100%;
 font-size:9pt;
 padding:10px;
 letter-spacing:2px;
 line-height:24px;
}
#spanTitleLeft
{
 float:left;
}
#spanTitleRight
{
 font-weight:normal;
 font-size:12px;
 float:right;
 padding-right:10px;
}
#replyPerson{
 border-bottom:1px solid #0066cc;
 background-color:#f1f5fa;
}

  (以前见别人做过一个类似的电子文档。)XML在更多的时候只是一种数据文件,利用XML我们可以使内容与样式分离,如果我们将XML文件比作结构化的原料的话。那么XSL就好像"筛子"与"模子",筛子选取自己需要的原料,这些原料再通过模子形成最终的产品。这个模子大致是这样:我们先设计好表现的页面,再将其中需要从XML中获取数据来填充内容的部分去掉,然后用XSL语句从XML中筛出相关的数据来填充。

  XML在展开时是一个树形结构,将树形结构中自定义标记称为节点,节点之间存在父子、兄弟关系,要访问其中的结点从根结点就要以"/"来层层进入。

  怎样从XML里提取相关的数据,就要用到XSL提供的模式化查询语言。就是通过相关的模式匹配规则表达式从XML里提取数据的特定语句,即上面所说的"筛子"。

  选择模式:
<xsl:for-each>、<xsl:value-of>和 <xsl:apply-templates>

匹配模式:
<xsl:template>

<xsl:template match="Replys" >
 <xsl:for-each select="Reply"  >
  <div>
   <div id="replyPerson">回复人:<xsl:value-of select="UserName"/> | <xsl:value-of select="RankName"/>|</div>
   <div><xsl:apply-templates select="Content" /></div>
   <div>发表时间:<xsl:value-of select="DateTime"/></div>
  </div>
 </xsl:for-each>
</xsl:template>

  简单说下这段:

  XSL模板将XSL的设计细化成一个个模板(块),最后再将这些模板(块)组合成一个完整的XSL;好比船与集装箱,我们不是将所有的货物一件件地堆起来,而是装在各自的集装箱中,然后再在船上将这些集装箱堆放起来。这种方法可以使你先从整体上考虑整个XSL的设计,然后将一些表现形式细化成不同的模块,再具体设计这些模块,最后将它们整合在一起,这样,将宏观与微观结合起来,符合人们条理化、规范化要求。

  装集装箱--书写模板(块):<xsl:template>
<xsl:template match="Replys">
  match ── 确定什么样的情况下执行此模板。就是标记的名字;
其中最上层模板必须将match设为"/"。
  <xsl:template>用match属性从XML选取满足条件的节点,在真对这些特定的节点形成
一个特定输出形式的模板。

<xsl:for-each select="Reply">循环选择。
  select :确定在此上下文环境中应执行什么模板,即选取用< xsl:template >标记建立的模板(块)。
<xsl:value-of> 直接输出选择的。    
调用模板(块):<xsl:apply-templates select="Content" />
调用xsl最后一段。    
<xsl:template match="Content">
    <xsl:apply-templates />
</xsl:template>

说多了。不太礼貌。 大家新年快乐。
一些基本概念和更多参考微软的"XSL开发者指南":
www.microsoft.com/china/msdn/Archives/workshop/xmlfaq.asp

时间: 2025-01-21 07:31:06

[xml] xml ,xsl,css 之乱搞的相关文章

XML+XSL+CSS+ASP打造留言簿

前段时间无意间看到一个博客的RSS可以用XSL格式输出并且能在Firefox里浏览,想到自己以前写的一个XML留言簿因为不兼容Firefox所不了了之了,现在看到他的能在Firefox浏览就觉得很好奇,看了一下代码,一句一句的比对,最后终于找到了原因,也就把这个留言簿给完成了.因为是一个简单的XML留言簿,所以取名SXGB(Simple XML GuestBook). 留言本演示,管理密码为test:http://home.goofar.com/hotheart/gbook/gbook.asp

xml+xsl+css制作的静态网站

问题描述 xml+xsl+css制作的静态网站 学校大作业要做一个用xml+xsl+css制作的静态网站,最少10个页面,网上搜了好多没有呀,急急急,怎么办... 解决方案 XML: XSL 解决方案二: 随便找一个同学做的,稍微修改下,就可以胡乱交差了.别告诉我你的同学一个也不会.遇到这种野鸡大学那你就认倒霉吧. 解决方案三: 网上去找吧,还是挺多的,你也可以找到一个,然后跟着改.. 解决方案四: 自己写呗,,,内容可以是一句话,可以是图片,,相对来说简单呀~~~

跟我学xml和XSL

xml 跟我学xml和XSL第一个XML文档 随着Internet的发展,越来越多的信息进入互联网,信息的交换.检索.保存及再利用等迫切的需求使HTML这种最常用的标记语言已越来越捉襟见肘.HTML将数据内容与表现融为一体,可修改性.数据可检索性差,而XML借鉴了HTML与数据库.程序语言的优点,将内容与表现分开,不仅使检索更为方便,更主要的是用户之间数据的交换更加方便,可重用性更强. XML是一种元标记语言,没有许多固定的标记,为WEB开发人员提供了更大的灵活性.当我们使用HTML时,标记只是

Sparks.com用XML和XSL来生成动态页面

xml|动态|页面 XML(可扩展标记语言)看起来可能像某种W3C标准--现在没有什么实际影响,即使以后能派上用场,也是很久以后的事.但实际上,它现在已经得到了应用.所以,不要等到XML已被加进了你最喜爱的HTML编辑器中才开始使用它.它现在就可以解决各种内部问题和B2B系统问题. 在Sparks.com,我们使用XML来标准化从Java对象到HTML数据显示等不同系统之间的数据表示. 特别需要指出的是,我们发现,只要以非常基本的XML结构来实现标准化,就可以更容易地共享和操作数据.在这一过程中

用XML和XSL生成动态页面

 xml(可扩展标记语言)看起来可能像某种w3c标准--现在没有什么实际影响,即使以后能派上用场,也是很久以后的事.但实际上,它现在已经得到了应用.所以,不要等到xml已被加进了你最喜爱的html编辑器中才开始使用它.它现在就可以解决各种内部问题和b2b系统问题. 在sparks.com,我们使用xml来标准化从java对象到html数据显示等不同系统之间的数据表示. 特别需要指出的是,我们发现,只要以非常基本的xml结构来实现标准化,就可以更容易地共享和操作数据.在这一过程中,我们发现了使用x

Python将xml和xsl转换为html的方法_python

本文实例讲述了Python将xml和xsl转换为html的方法.分享给大家供大家参考.具体分析如下: 这里需要用libxml2,所以还要先安装了libxml2模块才能使用.代码如下: # -*- coding: mbcs -*- #!/usr/bin/python import libxml2, libxslt class compoundXML: def __init__(self): self._result = None self._xsl = None self._xml = None

Python实现把xml或xsl转换为html格式_python

前些天用python处理xml的转换的一个小程序,用来把xml,xsl转换成html. 用的libxml2,所以还要先安装了libxml2模块才能使用. # -*- coding: mbcs -*- #!/usr/bin/python import libxml2, libxslt class compoundXML: def __init__(self): self._result = None self._xsl = None self._xml = None def do(self, xm

用XML和XSL来生成动态页面_XML/RSS

作者:马晓宁 xml(可扩展标记语言)看起来可能像某种w3c标准--现在没有什么实际影响,即使以后能派上用场,也是很久以后的事.但实际上,它现在已经得到了应用.所以,不要等到xml已被加进了你最喜爱的html编辑器中才开始使用它.它现在就可以解决各种内部问题和b2b系统问题. 在sparks.com,我们使用xml来标准化从java对象到html数据显示等不同系统之间的数据表示. 特别需要指出的是,我们发现,只要以非常基本的xml结构来实现标准化,就可以更容易地共享和操作数据.在这一过程中,我们

mybatis-sqlmapconfig.xml读取异常什么的完全搞不懂,求指教

问题描述 sqlmapconfig.xml读取异常什么的完全搞不懂,求指教 严重: Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [ApplicationContext.xml]: Invocation of