java 怎么把xml解析成Html格式,急

java 怎么把xml解析成Html格式,急,第1张

其实解析XML有两种方式,一种叫DOM,一种就是SAX。

其中DOM的解析方式是一次性把XML读入到内存中,然后按照XML的结构在内存中生成一颗DOM树,这样你可以从XML的根节点开始访问XML的每一个节点。但是种方式因为要把XML一次性全部读入内存,所以内存的消耗是很大的。如果XML很大的话,不建议使用这种方式。

SAX比较灵活,它是一个标签,一个标签的解析,每解析一个标签的时候就会调用相应的一个函数。已经解析过的标签,就被程序丢掉了(除非用你自己的方式把它记下来)。给你举个例子,比如有这样一个xml文件:

<年级

名称=“一年级”>

<班级

名称=“一班”>

<班主任

名称=“XXX”/>

班级

<班级

名称=“二班”>

<班主任

姓名=“YYY”>

班级

年级

对于这个XML,SAX的解析方式是,首先遇到"年级"标签,然后调用函数startElement(),在这个方法里,你可以读取“年级”标签的名称是“一年级”,然后往下执行,读到了班级,这个时候程序会再次自动的触发startElement()方法,然后得到班级的名称,这个时候已经读取的“年级”的信息就不存在了。后面的标签以此类推。

当读到

班级

标签的时候,程序会自动出发endElement()方法。当然读到

年级

的时候也会触发这个方法。

总的来说,程序对XML每做一次进一步的 *** 作,就会触发一个相应的函数,触发的这个函数叫做回调函数(其实不知道它是回调函数也没关系)。个人感觉整个解析的过程就类似于对栈的 *** 作。

解释的很粗浅,因为如果真正要把这个问题说明白很麻烦,不过希望这个解释能给你帮助

:)

请参考

可以通过xslt来实现 。

XSLT(Extensible StyleSheet Language Transmations),是XSL(可扩展样式语言)的一种,是一种基于模版的样式转换语言,说的直接一点就是可以把XML文本转成其他格式的文本,那么一起来看转换的代码:

[html] view plain copy print?

<?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>Review of My Dogs</title>

</head>

<body>

<h4>list of My Dogs</h4>

<table width="100%" border="1">

<thead>

<tr>

<th>Name</th>

<th>Breed</th>

<th>Age</th>

<th>Full Blood</th>

<th>Color</th>

</tr>

</thead>

<tbody>

<xsl:apply-templates/>

</tbody>

</table>

</body>

</html>

</xsl:template>

<xsl:template match="dog">

<tr>

<td>

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

</td>

<td><xsl:value-of select="@breed" /></td>

<td><xsl:apply-templates select="age" /></td>

<td><xsl:value-of select="fullBlood" /></td>

<td><xsl:value-of select="color" /></td>

</tr>

</xsl:template>

<xsl:template match="age">

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

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

</xsl:template>

</xsl:stylesheet>

将上面的代码写在记事本里,保存成xsl格式,然后再XML文档中引入:

[html] view plain copy print?

<?xml version="1.0" encoding="iso-8859-1"?>

<?xml-stylesheet type="text/xsl" href="mydogs.xsl"?>

<myDogs>

<dog breed="labrador">

<name>morgan</name>

<age>

<years>1</years>

<months>10</months>

</age>

<fullBlood>yes</fullBlood>

<color>Chocolate</color>

</dog>

</myDogs>

其实html中table本身就是xml格式的,只是现在需要把表格的标签生成到一个纯xml文件。

具体实现方法如下:

1、后台办法:

string xml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + tablename.InnerHtml

2、前台取法:

前台直接使用Jquery更方便

var xml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" +$("tablename").html()

表格代码如下

[code=html] <table id="tablename" runat="server" >

<tr>

<td></td>

</tr>

</table>[/code]

后台需要加上这两个 id="tablename" runat="server"


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7284294.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存