XML+XSLT处理XML的偏方 xslt xml html
<!--
<?xml-stylesheet type="text/xsl" href="people.xsl"?>
--><people> <person born="1900"died="1099">
<name>
<first_name>Wu</first_name>
<last_name>feng</last_name>
</name>
<profession>computer scientist</profession>
<profession>mathematician</profession>
<profession>cryptographer</profession>
</person> <person born="1918" died="288">
<name>
<first_name>王</first_name>
<middle_initial>二</middle_initial>
<last_name>小</last_name>
</name>
<profession>生态学</profession>
<hobby>放羊</hobby>
</person>
<person>
<hobby>摄影</hobby>
<hobby>旅游</hobby>
</person></people>
//xslfile.xsl<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:outputmethod="xml" omit-xml-declaration="yes"indent="yes"/>
<!--
循环
[结果]
person 1900
person 1918
person
hobby 放羊
hobby 摄影
hobby 旅游
-->
<xsl:template match="/">
<xsl:for-each select="//person">
<xsl:value-of select="name()"/>
<xsl:value-of select="@born"/>
<br />
</xsl:for-each><xsl:for-each select="people/person/hobby">
<xsl:value-of select="name()"/>
<xsl:value-of select="."/>
<br />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>//jsclient.htm<html><body><script language="javascript">// Load XMLvar xml = new ActiveXObject("Microsoft.XMLDOM")xml.async = falsexml.load("xmlfile.xml")// Load the XSLvar xsl = new ActiveXObject("Microsoft.XMLDOM")xsl.async = falsexsl.load("xslfile.xsl")
// Transformdocument.write(xml.transformNode(xsl))
</script>
</body></html>[服务端处理]//JavaServer.javapackage wf;import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.StringWriter;
import java.util.Enumeration;
import java.util.Properties;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;import org.dom4j.DocumentException;
public class JavaServer
{
/**
* 方法一
*这个方法将xml通过样式单转换.
*@paramxmlfile将要被转换的xml文件路径
*@paramxslfileXSL文件的文件路径
* @returnString转换后的字符串形式存放的xml/html/text
*/
publicstaticStringExecuteXSL(Stringxmlfile,Stringxslfile){
try{
ByteArrayOutputStreambyteRep=newByteArrayOutputStream();
TransformerFactorytransformerFactory =TransformerFactory.newInstance();
StreamSourcesource =newStreamSource(xmlfile);
StreamResultresult =newStreamResult(byteRep);
StreamSourcestyle=newStreamSource(xslfile);
Transformertransformer=transformerFactory.newTransformer(style);
transformer.setOutputProperty("method","xml");
transformer.setOutputPrope rty(javax.xml.transform.OutputKeys.ENCODING,
"GB2312");
transformer.transform(source,result);
returnbyteRep.toString();
}
catch(Exceptione){
e.printStackTrace();
returnnull;
}
} /*
* 方法二
* */
public static String transXML2HTML(Stringxmlfile, String xslfile,
StringsOutMethod, Properties params) {
StringWriter sw = newStringWriter();
StreamResult sr = newStreamResult(sw);try {
FileInputStreamfis = new FileInputStream(xmlfile);
File fxml =new File(xmlfile);
StreamSourcesXML = new StreamSource(fxml);
File fxsl =new File(xslfile);
StreamSourcesSTL = new StreamSource(fxsl);TransformerFactorytFactory = TransformerFactory.newInstance();
Transformertransformer = tFactory.newTransformer(sSTL);if(sOutMethod != null)
transformer.setOutputProperty("method",sOutMethod);if(params != null) {
Enumeration<Object>keys = params.keys();
String_key = "";
while(keys.hasMoreElements()) {
_key= (String) keys.nextElement();
transformer.setParameter(_key,params.getProperty(_key));
}
}
transformer.transform(sXML,sr);
} catch (Exception ex) {
ex.printStackTrace();
}
returnsw.getBuffer().toString();
}
publicstatic void main(String[] args) throws DocumentException
{
Stringxmlpath="D:\Java_test\xmlfile.xml";
Stringxslpath="D:\Java_test\xslfile.xsl";
System.out.print(JavaServer.ExecuteXSL(xmlpath,xslpath));
//System.out.print(JavaServer.transXML2HTML(xmlpath,xslpath,null,null ));
/*客户端通过js loadxml载入结果*/
}
}
更多阅读
牙疼快速止疼偏方 治牙疼的偏方最快方法
牙疼快速止疼偏方——简介牙疼是生活中非常常见的疾病之一,有内热,炎症,蛀牙等引起的,下面介绍一些治疗牙疼的偏方,希望对大家有所帮助。 牙疼快速止疼偏方——方法/步骤牙疼快速止疼偏方 1、槐实煎蛋 取槐实少许,鸡蛋一到两个,先把食用
治疗痤疮的偏方 如何治好痤疮
治疗痤疮的偏方。痤疮,青春期后体内激素水平改变,雄性激素水平增加,导致皮脂腺分泌旺盛,多种因素综合作用所致的毛囊皮脂腺产生慢性炎症,表现出来的症状就是痤疮。 随着生活节奏加快,学习工作的压力加大,痤疮患者有很多,由于对痤疮治疗
中医治疗脑血栓偏方 治疗脑血栓的偏方
中医治疗脑血栓偏方——简介治疗脑血栓有很多种方法,然而中医疗法更加温和,对身体的伤害比较小,适合长期调理。但由于中医见效慢等局限,在进行中医治疗时可配合天然生物调理疗法的微络康多肽地龙蛋白,加速病症的调理效果又不对身体产生毒
偏方治皮肤过敏皮肤过敏偏方 皮肤过敏的偏方
治疗皮肤过敏的偏方有哪些?生活中,有好人属于过敏体质,很容易受到外界的刺激而引发过敏反应,由于它的反复发作,让很多患者放弃治疗。那么,治疗皮肤过敏的偏方有哪些?偏方治皮肤过敏皮肤过敏偏方——步骤/方法偏方治皮肤过敏皮肤过敏偏方 1
治疗白发的偏方 治疗白发变黑的小偏方
其实有白发并不是那么可怕,有很多治白发的方法,只要坚持使用你认定的方法,就会有效果的。有白发主要是由于黑色素细胞失活,所以要想没有白发,最重要的就是激活黑色素细胞。治疗白发的偏方——原料桑白皮、五倍子、青葙子地骨皮、生地黄、