主题:请教xsl合并模板(import\include)
所属分类:Web 开发 XML/SOAP
----------------------------------------------------------------------
news.xml调用news.xsl
news.xsl中引入head.xsl
想在浏览news.xml时,可以显示被head.xsl、news.xsl共同格式化的效果。
请问如何写?
谢谢!
news.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="news.xsl"?>
<catalog>
<cd>
<title>标题1</title>
<artist>艺术1</artist>
</cd>
<cd>
<title>标题2</title>
<artist>艺术2</artist>
</cd>
</catalog>
news2.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="head.xsl"/>
<xsl:template match="cd">
ddddddddddddd
</xsl:template>
</xsl:stylesheet>
head.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>Title</title>
</head>
</html>
</xsl:template>
</xsl:stylesheet>
----------------------------------------------------------------------
news.xsl:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="head.xsl"/>
<xsl:template match="/">
<xsl:apply-templates select="//cd" />
</xsl:template>
<xsl:template match="cd">
<xsl:value-of select="title"/><br/><xsl:value-of select="artist"/><br/>
</xsl:template>
</xsl:stylesheet>
这样写基本上可以了,如果出现乱码,请注意XML的ENCODING。
--------------------------------------------------------
head.xsl
模板中的<title>Title</title>在访问news.xml是,并没有显示出来。
请再帮帮忙。
谢谢!
--------------------------------------------------------
<xsl:apply-imports/>
--------------------------------------------------------
谢谢。使用apply-imports成功!!
--------------------------------------------------------
刚才试了试。离开apply-imports也成功。呵呵,是原来xsl写的不对头。
+++++++++++++++++++++++++++++++++++++++++++++
分享到:
相关推荐
学习XSL不仅包括理解基本概念,还需要掌握如变量、函数、模板选择、流控制(如条件语句和循环)、以及如何导入和链接其他XSL样式表等高级特性。此外,熟悉XPath的语法和功能对于有效使用XSL至关重要,因为XPath是...
当宿主样式表中有匹配规则时,`<xsl:apply-imports>` 会先调用导入的样式表中的对应模板,然后才执行宿主样式表中的模板。这在XSLT中提供了一种优先级的概念,即导入的样式表模板优先于宿主样式表中的同名模板。 **...
1. **模板(Templates)**:模板是XSL中定义输出格式的关键部分。例如,我们可以创建一个模板来处理XML中的特定元素,将其转换为HTML的`<p>`标签: ```xml <xsl:template match="paragraph"> <xsl:apply-...
在实际应用中,你可能还会遇到条件判断(`<xsl:if>`和`<xsl:choose>`)、循环(`<xsl:for-each>`)、变量(`<xsl:variable>`和`<xsl:param>`)以及导入和包含其他样式表(`<xsl:import>`和`<xsl:include>`)等功能。...
由于描述中提到了“(一)还有(二)”,这暗示着学习资料可能是分两部分的,第一部分可能介绍了基础概念和基本操作,而第二部分可能涉及更高级的主题,如模板的继承、导入、模式的优先级以及复杂的函数使用。...
2. **XSL模板**:详述如何使用模板规则来匹配XML元素,并定义转换规则。 3. **XSL变量与参数**:介绍如何在XSL中声明和使用变量及参数,以实现更灵活的转换逻辑。 4. **XSL函数库**:讲解XSL内置函数的使用,如...
你可以通过导入XML文件和相应的XSL样式表,然后在支持XSLT的环境中运行它们,观察转换结果。 总的来说,XML、CSS和XSL的结合使用,为处理结构化数据提供了极大的灵活性和表现力。通过学习和熟练掌握这些技术,你...
2. **XSL学习.doc**:可能是作者编写的详细教程或笔记,涵盖XSL的高级特性,如XPath表达式、模式匹配、导入导出、命名空间、样式表组合等。此外,文档可能还包含了一些实用技巧和解决常见问题的方法。 3. **XSL速查...
首先,我们需要导入必要的库: ```java import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org....
4. **XSL样式表结构**:包括导入、包含、模板、变量、模式和函数等概念。 5. **数据转换**:理解如何使用XSLT将XML数据转换为HTML,以供浏览器显示,或其他格式,如PDF。 6. **DOM(Document Object Model)**:XML...
8. **导入与包含(Importing and Including)**:一个样式表可以导入或包含另一个样式表,实现模块化开发。 **XSLT的使用场景:** 1. **数据展示**:将XML数据转换为适合网页显示的HTML。 2. **报表生成**:从XML...
- **导入和包含(Importing and Including)**:允许在一个样式表中引用另一个样式表,或者在一个样式表中包含另一个样式表的部分。 - **函数库(Function Library)**:XSLT提供了一系列内置函数,可以处理字符串、...
理解如何组织和导入样式表可以帮助我们构建更易于维护和扩展的转换代码。 通过学习和实践“跟我学XSL(四)”中的内容,你将能够熟练掌握XSLT的基本操作,并运用到实际的XML数据处理项目中。无论是为了呈现XML数据,...
进阶内容可能包括XPath(XML Path Language)的使用,XPath是XSLT中用来选取XML节点的语言,以及XSLT的高级功能,如条件语句、循环和导入导出。 在提供的压缩包文件中,"系统说明.txt"可能是关于XML和XSLT学习系统...
当在一个XSLT样式表中使用 `<xsl:import>` 元素导入另一个样式表时,该元素可以被用来调用导入样式表中的模板。 - **语法**:`<xsl:apply-imports/>` - **属性**:无 - **示例**: ```xml <xsl:stylesheet ...
另一个方法`returnXml`可能用于将XML字符串通过XSL模板转换,但由于缺少具体实现,这里无法详细介绍。 总之,这段Java代码展示了如何使用JAXP的XSLT功能将XML文件转换为HTML文件,以及可能的将XML通过XSL模板转换为...
在C#代码中,首先需要导入以下命名空间以使用XML和XSL相关的类: - `System.Xml`:包含处理XML的基本类。 - `System.Xml.Xsl`:提供用于执行XSL转换的类。 - `System.IO`:用于读取和写入文件。 - `System.Text...