`
fengyong0912
  • 浏览: 107013 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

XSL将XML转换成HTML文件 js方法

    博客分类:
  • JAVA
阅读更多

JavaScript解决方案
XSL是如何将XML转换成HTML文件。方法就是在XML文档的头部加入一个XSL样式表信息,然后让浏览器执行转换过程。
这种方法在大部分情况下都做得很好,但是在不支持XML的浏览器中就无法正确显示了。
一个更好的更全面的解决方案是使用Javascript来实现XML到HTML的转换。但是使用JavaScript必须得到以下功能支持:
a.允许Javascript代替浏览器进行细节检测;
b.根据不同的需要和不同的浏览器使用不同的样式表。
对于XSL来说这是完全可行的。设计XSL的目标之一就是允许将一种格式转换成另一种格式,支持不同的浏览器,支持不同的用户需求。未来的浏览器的重要任务就是在客户端执行XSL的转换工作。
2.一个具体的实例
下面是我们上面提到的一个XML文档(cd_catalog.xml)例子的部分代码
<?xml version="1.0" encoding="ISO8859-1" ?>
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
.
.
.
下面是完整的XSL文件(cd_catalog.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">
<tr>
<td><xsl:value-of select="TITLE"/></td>
<td><xsl:value-of select="ARTIST"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

注意,现在XML文件还没有加入XSL样式表,还没有被转换成HTML文件。
下面是用JavaSript来实现最后转换的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.xsl")
// Transform
document.write(xml.transformNode(xsl))
</script>
</body>
</html>

第一段代码建立一个Microsoft Parser(XMLDOM)解析的对象,并将XML文档读入内存;第二段代码建立另外一个对象并导入XSL文档;最后一行代码将XML文档用XSL文档转换,并将结果输出到HTML文件中。

使用xsl显示xml文档

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="st.xsl"?>
<students>
<student>
<name>August</name>
<tele>91%</tele>
<dizhi>9%</dizhi>
</student>
<student>
<name>zhangjie</name>
<tele>58469523</tele>
<dizhi>beijinglu12hao</dizhi>
</student>
</students>
上面是xml语言,要在网页中显示,首先要用xsl编辑它的样式。下面是xsl的代码。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">   //此链接指向了官方的 W3C XSLT 命名空间 注意大小写
<xsl:template match="/">
<html>
<body>
<h2>网页陶吧访问统计</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th align="left">Month</th>
<th align="left">% of IE visitor</th>
<th align="left">% of NC visitor</th>
</tr>
<xsl:for-each select="students/student">
<tr>
<td>

<xsl:value-of select="name"/>

</td>
<td>
<xsl:value-of select="tele"/>
</td>
<td>
<xsl:value-of select="dizhi"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
保存为st.xsl

**下面是转载他人的学习心得 很简明很实用推荐大家一起学习**
这是我今天学习的时候遇到的另一个问题,做图像超链接要把链接地址放到<a>的href属性中去,可是这就是在标签中套标签,是不可以的,查了《Web编程实做教程》,才知道正确的解决方案,现在与大家分享。

此段代码运行需要两张图片:a.gif和b.gif。

my.xml
以下内容为程序代码:

<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="mystyle.xsl"?>
<Books>
    <Book ID="a001">
        <Name>网络指南</Name>
        <Photo>a.gif</Photo>
        <Homepage>http://www.a.com</Homepage>
    </Book>
    <Book ID="a002">
        <Name>局域网技术</Name>
        <Photo>b.gif</Photo>
        <Homepage>http://www.b.com</Homepage>
    </Book>
</Books>
 mystyle.xsl
以下内容为程序代码:

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="Books/Book">
        <xsl:element name="a">
            <xsl:attribute name="href">
                <xsl:value-of select="./Homepage"/>
            </xsl:attribute>
            <xsl:element name="img">
                <xsl:attribute name="src">
                    <xsl:value-of select="./Photo"/>
                </xsl:attribute>
            </xsl:element>
        </xsl:element>
        <br/>
    </xsl:template>
</xsl:stylesheet>
 在浏览器上的显示结果:
竖向平列显示两个图片。

说明:
使用超链接,需要借助<xsl:element>和<xsl:attribute>两个标签,基本使用方法就可以参照上边的例子,在深奥一点的,如果你想出来了,记得要和大家分享哟。

长见识,嘿嘿,这个可是真是第一次看见。
{Homepage}
<xsl:value-of select="Homepage"/>
两个在任何时候都是等价的吧?

你上边的代码和我原来的效果有点小差别,我帮你完善一下:
mystyle.xsl
<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="Books/Book">
        <a href="{Homepage}">
            <img src="{Photo}"/>
        </a>
    </xsl:template>
</xsl:stylesheet>
分享到:
评论

相关推荐

    XSL转换XML为HTML树显示

    通过分析和理解这个XSL文件,我们可以看到如何将XML的结构转换成HTML的树结构,并实现节点的展开与关闭功能。 总的来说,XSL转换XML为HTML树显示是一项常见的数据展示技术,它结合了XML的结构化特性,XSLT的转换...

    纯html标签静态调用xml文件及xsl对xml文件的的显示修饰

    XSLT(XSL Transformations)是XSL的一部分,它定义了转换规则,将XML数据转化为HTML或其他格式。以下是一个简单的XSL样式表(Rss.xsl)示例: ```xml &lt;xsl:stylesheet version="1.0" xmlns:xsl=...

    xml的转化成html

    在实验 2 中,我们将学习如何使用 XSL 处理器处理 XML 文件和 XSL 文件,转换输出 HTML 文件。实验步骤如下: 1. 首先,创建一个 XML 文件,例如: ``` &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;ListTitle&gt;...

    使用XSLT将XML文档转换成HTML文档

    最后,我们将使用 JavaScript 语言来将 XML 文档和 XSLT 文件加载到 HTML 文档中,并将其转换成 HTML 文档。 &lt;html&gt; 使用 XSLT 实现 XML 文档到 HTML 文档的转换 &lt;script language="JavaScript"&gt; function ...

    xsl解析xml生成表格,表格行动态隐藏与显示

    在“xsl解析xml生成表格”这一场景中,我们需要创建一个XSL文件(如test.xsl),在其中编写XSLT指令,将XML数据转换成HTML表格。例如,我们可以使用`&lt;xsl:for-each&gt;`循环遍历XML文档中的元素,然后使用`&lt;table&gt;`, `...

    网页XSL基础教程,支持XML和XSL

    下面是一段JavaScript代码,展示了如何在浏览器端加载XML和XSL文件,并使用XSL将XML转换为HTML: ```html &lt;html&gt; &lt;script language="javascript"&gt; // 加载XML文件 var xml = new ActiveXObject("Microsoft.XMLDOM...

    使用JavaScript+XML+XSL创建树形目录

    接着,我们需要一个XSL文件来定义如何将XML数据转换为HTML结构,以便JavaScript可以操作。例如,我们可以创建如下XSL样式表: ```xsl &lt;xsl:stylesheet version="1.0" xmlns:xsl=...

    XML与CSS、XML与XSL及在页面中直接调用XML的数据

    XSLT(XSL转换)允许我们定义一套规则,将XML数据转换成其他格式,如HTML、PDF或新的XML文档。以下是一个简单的XSL转换示例,将XML数据转换为HTML表格: ```xsl &lt;xsl:stylesheet version="1.0" xmlns:xsl=...

    xsl javascript 传递参数

    `xmlparmseither.html`可能是一个HTML页面,其中包含上述JavaScript代码,用于加载XML和XSL文件,执行转换,并将结果展示在页面上。 总结起来,XSL、XPath和JavaScript的结合使得我们可以动态地处理XML数据,通过...

    XML HTML CSS XSL Web编程实作教程

    2. XSLT和XSL-FO:讲解如何编写XSL转换规则,以及如何将XML转换为更易读的HTML或PDF文档。 3. HTML5新特性:如语义化标签、表单控件、多媒体元素、离线存储等。 4. CSS3详解:包括选择器、盒模型、布局方式(如...

    xml转换html

    总结,XML到HTML的转换是数据处理中的常见需求,通过XSLT、JavaScript库或DOM操作等方法,我们可以将结构化的XML数据转化为适合网页展示的HTML格式。了解这两种语言的特点和转换机制,对于Web开发人员来说是至关重要...

    javascript xml xsl xslt

    例如,一个常见的应用场景是,服务器端生成XML数据,客户端通过JavaScript使用XMLHttpRequest对象获取XML文件,接着使用XSLT对XML进行转换,生成HTML片段,最后将这些HTML插入到网页的适当位置,实现动态渲染。...

    XML HTML CSS XSL Web编程实作

    XSLT(XSL Transformations)是XSL的一部分,用于将XML文档转换成其他格式,如HTML、PDF或纯文本。XSLT通过模板匹配和转换规则实现这一功能,为数据的呈现提供了灵活性。 Web编程实作则涵盖了上述技术的实际应用。...

    ajax以及xml@xsl两种分页

    - 编写XSL样式表,定义如何将XML转换为HTML,包括如何显示分页链接和内容。 - 在AJAX请求成功后,使用JavaScript的`XSLTProcessor`或类似的库进行转换。 - 将转换后的HTML插入到页面的DOM树中,完成页面的局部...

    xsd,xml,htm,xsl,dom例子

    "zoo.xsl"文件可以定义如何将"zoo.xml"中的数据转换成HTML或其他格式,例如,将动物列表转化为带有颜色和样式的表格。XSLT(XSL Transformation)是实现这一过程的引擎,它可以按照XSL文件的指令重新排列和格式化XML...

    用XSL将ExtJS封装成标签

    标题“用XSL将ExtJS封装成标签”指的是利用XSL(XML Stylesheet Language)技术,将ExtJS库中的组件和功能转化为自定义HTML标签,以便于在网页开发中更方便地使用和管理ExtJS代码。这个过程可以提高代码的可读性、可...

    XML HTML CSS XSL Web编程实作教程.rar

    XSLT用于转换XML文档,将XML数据转换成HTML、PDF或其他格式,常用于数据交换和数据呈现。XPath则是用来在XML文档中查找信息的语言,它提供了简洁的方式选取XML节点,支持对节点集合进行运算和筛选。 这个"XML HTML ...

    XML$XSLT$HTML$JAVASCRIPT转换实例

    然后,使用XSLT文件定义转换规则,将XML转换成HTML。转换后的HTML可以被浏览器解析并显示出来,提供了直观的数据视图。此外,JavaScript代码会嵌入到HTML中,或者作为外部JS文件引用,以处理用户的交互行为,如点击...

    xsl递归解晰xml

    总结来说,“xsl递归解析xml”是将XML数据通过XSLT转换成其他格式的过程,其中递归模板是处理XML树形结构的关键。这个过程可以与JavaScript和HTML结合,实现动态交互式的数据展示。了解并掌握这一技术,对于开发处理...

Global site tag (gtag.js) - Google Analytics