使用 XSLT 将 XML 转换为 XHTML ,<xsl:if 判断值是否为空 。
网上搜了下,最后选中其中一种方法。
<xsl:if test="price = '' or year = '' ">
//做的事情
//多值判断 与或非 采用 and 和 or 而不是 java语法的 && 和 ||
</xsl:if>
1.xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!-- Edited with XML Spy v2007 (http://www.altova.com) -->
<?xml-stylesheet type="text/xsl" href="1.xsl"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price></price>
<year></year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price></price>
<year>1988</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
<cd>
<title>Still got the blues</title>
<artist>Gary Moore</artist>
<country>UK</country>
<company>Virgin records</company>
<price>10.20</price>
<year>1990</year>
</cd>
<cd>
<title>Eros</title>
<artist>Eros Ramazzotti</artist>
<country>EU</country>
<company>BMG</company>
<price>9.90</price>
<year>1997</year>
</cd>
<cd>
<title>One night only</title>
<artist>Bee Gees</artist>
<country>UK</country>
<company>Polydor</company>
<price>10.90</price>
<year>1998</year>
</cd>
<cd>
<title>Sylvias Mother</title>
<artist>Dr.Hook</artist>
<country>UK</country>
<company>CBS</company>
<price>8.10</price>
<year>1973</year>
</cd>
<cd>
<title>Maggie May</title>
<artist>Rod Stewart</artist>
<country>UK</country>
<company>Pickwick</company>
<price>8.50</price>
<year>1990</year>
</cd>
<cd>
<title>Romanza</title>
<artist>Andrea Bocelli</artist>
<country>EU</country>
<company>Polydor</company>
<price>10.80</price>
<year>1996</year>
</cd>
<cd>
<title>When a man loves a woman</title>
<artist>Percy Sledge</artist>
<country>USA</country>
<company>Atlantic</company>
<price>8.70</price>
<year>1987</year>
</cd>
<cd>
<title>Black angel</title>
<artist>Savage Rose</artist>
<country>EU</country>
<company>Mega</company>
<price>10.90</price>
<year>1995</year>
</cd>
<cd>
<title>1999 Grammy Nominees</title>
<artist>Many</artist>
<country>USA</country>
<company>Grammy</company>
<price>10.20</price>
<year>1999</year>
</cd>
<cd>
<title>For the good times</title>
<artist>Kenny Rogers</artist>
<country>UK</country>
<company>Mucik Master</company>
<price>8.70</price>
<year>1995</year>
</cd>
<cd>
<title>Big Willie style</title>
<artist>Will Smith</artist>
<country>USA</country>
<company>Columbia</company>
<price>9.90</price>
<year>1997</year>
</cd>
<cd>
<title>Tupelo Honey</title>
<artist>Van Morrison</artist>
<country>UK</country>
<company>Polydor</company>
<price>8.20</price>
<year>1971</year>
</cd>
<cd>
<title>Soulsville</title>
<artist>Jorn Hoel</artist>
<country>Norway</country>
<company>WEA</company>
<price>7.90</price>
<year>1996</year>
</cd>
<cd>
<title>The very best of</title>
<artist>Cat Stevens</artist>
<country>UK</country>
<company>Island</company>
<price>8.90</price>
<year>1990</year>
</cd>
<cd>
<title>Stop</title>
<artist>Sam Brown</artist>
<country>UK</country>
<company>A and M</company>
<price>8.90</price>
<year>1988</year>
</cd>
<cd>
<title>Bridge of Spies</title>
<artist>T`Pau</artist>
<country>UK</country>
<company>Siren</company>
<price>7.90</price>
<year>1987</year>
</cd>
<cd>
<title>Private Dancer</title>
<artist>Tina Turner</artist>
<country>UK</country>
<company>Capitol</company>
<price>8.90</price>
<year>1983</year>
</cd>
<cd>
<title>Midt om natten</title>
<artist>Kim Larsen</artist>
<country>EU</country>
<company>Medley</company>
<price>7.80</price>
<year>1983</year>
</cd>
<cd>
<title>Pavarotti Gala Concert</title>
<artist>Luciano Pavarotti</artist>
<country>UK</country>
<company>DECCA</company>
<price>9.90</price>
<year>1991</year>
</cd>
<cd>
<title>The dock of the bay</title>
<artist>Otis Redding</artist>
<country>USA</country>
<company>Atlantic</company>
<price>7.90</price>
<year>1987</year>
</cd>
<cd>
<title>Picture book</title>
<artist>Simply Red</artist>
<country>EU</country>
<company>Elektra</company>
<price>7.20</price>
<year>1985</year>
</cd>
<cd>
<title>Red</title>
<artist>The Communards</artist>
<country>UK</country>
<company>London</company>
<price>7.80</price>
<year>1987</year>
</cd>
<cd>
<title>Unchain my heart</title>
<artist>Joe Cocker</artist>
<country>USA</country>
<company>EMI</company>
<price>8.20</price>
<year>1987</year>
</cd>
</catalog>
1.xsl 代码
<?xml version="1.0" encoding="UTF-8"?>
<!-- Edited with XML Spy v2007 (http://www.altova.com) -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<xsl:if test="price = '' or year = '' ">
<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>
浏览器打开 1.xml 结果如下:
- 大小: 13.9 KB
分享到:
相关推荐
在XML与XSL技术的结合应用中,对字符串进行分割处理是一项常见的需求,尤其是在需要将一个包含多个值的属性或元素拆分为多个单独元素时。本文将深入探讨如何利用XSLT中的`substring-before()`和`substring-after()`...
在上面的例子中,我们可以创建一个XSL样式表来将XML转换为HTML: ```xml <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <h1>个人...
在XSLT中,我们使用`<xsl:if>`元素来根据一个布尔表达式的值决定是否输出特定内容。例如,在案例1(element-if.xslt)中,我们筛选出Category属性为"计算机"的Book元素进行输出。具体语法结构如下: ```xml <xsl...
这个XSL模板会将XML中的`folder`元素转换为`<ul><li>`结构,而`file`元素则转换为链接`<a>`。 **步骤3:使用JavaScript处理数据** 在HTML页面中,我们可以使用JavaScript来加载XML和XSL文件,然后应用XSL转换得到...
1. `<xsl:value-of>` 元素:这个元素用于将XML文档中选定节点的值插入到结果文档中。`select`属性是必需的,用来指定要获取值的XPath表达式。 例如: ```xml <xsl:value-of select="L00/C2" /> ``` 在这个例子...
2. XSLT的流程控制包括`<xsl:if>`进行条件判断,`<xsl:for-each>`进行循环,以及`<xsl:choose>`, `<xsl:when>`, `<xsl:otherwise>`进行多分支选择。例如: ```xml <xsl:for-each select="cd"> <xsl:if test="price ...
XSL是一种样式表语言,用于转换XML文档的结构和格式。它包括XSLT(XSL Transformations),用于转换XML到其他XML或HTML,以及XPath,用于在XML文档中查找节点。 在构建无限极菜单的场景中,XML文件可以用来存储菜单...
在IT领域,XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,而XSL(eXtensible Stylesheet Language)则是一种样式表语言,用于转换XML文档的结构和格式。本主题主要关注如何使用XSL解析XML...
编写文件名为student2.xsl的XSL文件,其中,用<xsl:sort>对学生信息数据按照专业进行排序,并用<xsl:if>筛选出专业为“计算机”的学生信息。要求显示出的计算机专业的学生信息记录单元格背景色为黄色,字符为加粗的...
对于包含条件判断的模板,如`xsl:if`或`xsl:choose`,可以使用`xsl:message`来确定哪个分支被触发。清单2展示了如何在DocBook XSL样式表中添加调试消息,以确定转换无效的原因: 清单2: ```xml <xsl:choose> <xsl:...
除此之外,XSL还提供了一系列的指令和元素,如`<xsl:for-each>`用于迭代遍历XML元素,`<xsl:value-of>`用于输出元素的值,`<xsl:copy>`用于复制元素,`<xsl:if>`和`<xsl:choose>`用于条件判断等。这些工具使XSL具有...
在本教程中,我们将详细探讨如何使用XSLT将XML转换为XHTML,以适应网页展示的需求。 首先,我们需要了解XSLT的基本结构。XSLT文件本身也是一个XML文档,由模板、模式和指令组成。模板定义了输出结果的结构,模式则...
XSLT,全称为“可扩展样式表语言转换”(eXtensible Stylesheet Language Transformations),是一种专门用于转换XML文档格式的语言。它基于XPath,是W3C推荐的标准,用于将XML数据转换成HTML、PDF、其他XML格式或者...
5. **条件语句和循环(Conditional Statements & Loops)**:XSLT支持条件语句(如`<xsl:if>`和`<xsl:choose>`)以及循环(如`<xsl:for-each>`),使我们能够基于数据的条件来控制输出。 6. **输出指令(Output ...
在实际应用中,你可能还会遇到条件判断(`<xsl:if>`和`<xsl:choose>`)、循环(`<xsl:for-each>`)、变量(`<xsl:variable>`和`<xsl:param>`)以及导入和包含其他样式表(`<xsl:import>`和`<xsl:include>`)等功能。...
XSL用于转换XML文档,将其呈现为HTML、PDF或其他格式。XSLT(XSL Transformations)是实现XSL转换的语法。例如,下面的XSL模板将`book`元素转换为HTML: ```xml <xsl:stylesheet version="1.0" xmlns:xsl=...
XSLT提供了丰富的功能,包括条件判断(`<xsl:if>`)、循环(`<xsl:for-each>`)、模板匹配(`<xsl:template>`)以及函数调用等,使得XML数据可以根据需要被灵活地呈现和转换。 在实际应用中,XSLT通常与XML解析器...
在IT领域,XML(eXtensible Markup Language)...`pugxml.xml`可能是包含测试数据的XML文件,`source-package.css`和`.xsd`、`.xsl`文件可能用于样式和数据转换。结合这些文件,你可以构建一个完整的C++ XML解析应用。
7. **条件处理**:使用`<xsl:if>`和`<xsl:choose>`可以基于特定条件决定内容是否显示。 8. **引用和链接**:`<fo:basic-link>`元素用于创建链接,可以链接到内部或外部资源。 9. **分页和断行**:`<fo:break-...