java 怎么把xml解析成Html格式,急
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 怎么把xml解析成Html格式,急相关的知识,希望对你有一定的参考价值。
我现在有个XML 大家可以看下,就是一个报表模式 先写成xml 我的问题是怎么把XML转换成html的Table进去显示: <?xml version="1.0" encoding="UTF-8"?> <report xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="dataDesc.xsd" id="XX" label="安徽省XX市XX报表" color="" fontSize="" width="" height="" fontFamily=""> <table id="table1" isGrid="false" index="0" rowIndex="0" columnIndex="0"> <property id="234" label="汇总人" key="hzr" rowIndex="0" columnIndex="1" ruleId="" ruleIndex=""/> <property id="345" label="汇总时间" key="hzsj" rowIndex="0" columnIndex="2"/> </table> <table id="table2" isGrid="true" index="1" > <property id="xh" lable="序号" width="20" value="" isAutoIncrement="true"/> <property id="qymc" lable="企业名称" width="30" ruleId="" ruleIndex=""/> <table id="bn" label="本年" > <property id="bnhtjh" label="计划量"/> <property id="bnzc" label="生产量"/> </table> <table id="bn" label="去年" > <property id="bnhtjh" label="计划量"/> <property id="bnzc" label="消耗量"/> <table id="bn" label="其他地区" > <property id="bnhtjh" label="生产量"/> <property id="bnzc" label="生产量"/> </table> </table> </table> <table id="table3" index="0" gridId="table2" > <property id="xh" value="栏次" /> <property id="qymc" value="1" /> <property id="qymc" value="2" /> <property id="qymc" value="3" /> <property id="qymc" value="4=(2*3)/2" /> <property id="qymc" value="5" /> <property id="qymc" value="6" /> <property id="qymc" value="7" /> </table> <table id="table3" index="1" gridId="table2" > <property id="xh" value="新增" rowspac="3"/> <property id="qymc" value="1" /> <property id="qymc" value="2" /> <property id="qymc" value="3" /> <property id="qymc" value="4=(2*3)/2" /> <property id="qymc" value="5" /> <property id="qymc" value="6" /> <property id="qymc" value="7" /> </table> <table id="table3" index="2" gridId="table2" > <property id="qymc" value="1" /> <property id="qymc" value="2" /> <property id="qymc" value="3" /> <property id="qymc" value="4=(2*3)/2" /> <property id="qymc" value="5" /> <property id="qymc" value="6" /> <property id="qymc" value="7" /> </table> </report>
参考技术A 其实解析XML有两种方式,一种叫DOM,一种就是SAX。其中DOM的解析方式是一次性把XML读入到内存中,然后按照XML的结构在内存中生成一颗DOM树,这样你可以从XML的根节点开始访问XML的每一个节点。但是种方式因为要把XML一次性全部读入内存,所以内存的消耗是很大的。如果XML很大的话,不建议使用这种方式。
SAX比较灵活,它是一个标签,一个标签的解析,每解析一个标签的时候就会调用相应的一个函数。已经解析过的标签,就被程序丢掉了(除非用你自己的方式把它记下来)。给你举个例子,比如有这样一个xml文件:
<年级
名称=“一年级”>
<班级
名称=“一班”>
<班主任
名称=“XXX”/>
</班级>
<班级
名称=“二班”>
<班主任
姓名=“YYY”>
</班级>
</年级>
对于这个XML,SAX的解析方式是,首先遇到"年级"标签,然后调用函数startElement(),在这个方法里,你可以读取“年级”标签的名称是“一年级”,然后往下执行,读到了班级,这个时候程序会再次自动的触发startElement()方法,然后得到班级的名称,这个时候已经读取的“年级”的信息就不存在了。后面的标签以此类推。
当读到</班级>标签的时候,程序会自动出发endElement()方法。当然读到</年级>的时候也会触发这个方法。
总的来说,程序对XML每做一次进一步的操作,就会触发一个相应的函数,触发的这个函数叫做回调函数(其实不知道它是回调函数也没关系)。个人感觉整个解析的过程就类似于对栈的操作。
解释的很粗浅,因为如果真正要把这个问题说明白很麻烦,不过希望这个解释能给你帮助
:)
请参考
解析xml文件,如何动态的封装成一个java类
要看你的xml文件是什么格式,可以针对某个结构的xml文件封装一个解析类如果不依赖xml文件的格式,只是封装操作xml的方法,这个网上一大堆,用dom4j或jdom都可以 参考技术A 用java反射
以上是关于java 怎么把xml解析成Html格式,急的主要内容,如果未能解决你的问题,请参考以下文章
求教大神,我新建的java webservice 从客户端传过来的xml格式字符串 怎么解析