xsl的条件怎么写,请给个例子 -wrench(100分)

  • 主题发起人 主题发起人 wrench
  • 开始时间 开始时间
W

wrench

Unregistered / Unconfirmed
GUEST, unregistred user!
就是xsl:if的格式
 
file1:test.xml
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet href="test.xsl" type="text/xsl"?>
<tongxunbu>
<person id="00001">
<name>yvtong</name>
<email>okhello@263.net</email>
</person>
<person id="00002">
<name>wrench</name>
<email></email>
</person>
</tongxunbu>

file2 test.xsl
<?xml version="1.0" encoding="gb2312" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template><xsl:apply-templates/></xsl:template>
<xsl:template match="tongxunbu">
<html>
<head>
<title>通讯簿</title>
<style>
name{background-color:#0fffff;font-size:12pt;}
</style>
</head>
<body>
<table width="500" border="1">
<xsl:for-each match="person">
<xsl:if test="@id[.='00001']">
<xsl:apply-templates />
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="name">
<tr>
<td>姓名</td><td><xsl:value-of /></td>
</tr>
</xsl:template>

<xsl:template match="email">
<tr><td>电子邮件</td><td><xsl:value-of /></td>
</tr>
</xsl:template>
</xsl:stylesheet>
注释:
可以去掉<xsl:if ....> 实验
 
XSL条件IF
  XSL可以用一个IF语句过滤来自XML文档的信息。
在哪里放置IF条件
  现在来重新看看你已经看过多次的XML文档:
  <?xml version="1.0"?>
  <CATALOG>
   <CD>
    <TITLE>Empire Burlesque</TITLE>
    <ARTIST>Bob Dylan</ARTIST>
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
   </CD>
  .
  .
  .
  要想放置一个对文件内容的条件测试if命令,只需要向XSL文档中增加一个xsl:if元素,如下:
  <xsl:if match=".[ARTIST='Bob Dylan']">
  ... 一些输出...
  </xsl:if>
  现在看一下经过轻微调整的XSL样式表:
  <?xml version='1.0'?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  <xsl:template match="/">
   <html>
   <body>
    <table border="2" bgcolor="yellow">
     <tr>
      <th>Title</th>
      <th>Artist</th>
     </tr>
     <xsl:for-each select="CATALOG/CD">
     <xsl:if match=".[ARTIST='Bob Dylan']">
     <tr>
       <td><xsl:value-of select="TITLE"/></td>
       <td><xsl:value-of select="ARTIST"/></td>
   </tr>
      </xsl:if>
     </xsl:for-each>
    </table>
   </body>
   </html>
  </xsl:template>
  </xsl:stylesheet>
在浏览器中转换
  以下是在浏览器中将XML文件转换成HTML所需要的简单代码:
  <html>
  <body>
  <script language="javascript">
  // Load XML
  var xml = new ActiveXObject("Microsoft.XMLDOM")
  xml.async = false
  xml.load("cd_catalog.xml")
  // Load the XSL
  var xsl = new ActiveXObject("Microsoft.XMLDOM")
  xsl.async = false
  xsl.load("cd_catalog_if.xsl")
  // Transform
  document.write(xml.transformNode(xsl))
  </script>
  </body>
  </html>
 
多人接受答案了。
 
后退
顶部