使用樣式表格式化獲得的XML數據,這個如果使用單獨一個XML文件是完全可以的,在XML文件裡面嵌入SXL文件,但是現在不要這麼作,直接獲取XML數據,然後調用XSL文件格式化數據。
這部分演示程序需要使用到AJax客戶端框架,如下例子所示:
1.ceshi.JSP
<%@ page contentType="text/Html;charset=GBK"%>
<script language="Javascript" src="jsrequest.JS"></script>
<script language="Javascript">
function showXML(){
var url = "Vehicles.XML";
get_request( url, "text" );
}
function pageChange( responseText ){
var xml = new ActiveXObject( "Microsoft.XMLDOM" );
XML.async = false;
//load the text of XML data
xml.loadXML( responseText );
var xsl = new ActiveXObject( "Microsoft.XMLDOM" );
xsl.async = false;
// Load the XSL
xsl.load( "Vehicles.xsl" );
var div = document.getElementById( "show" );
div.innerHtml = XML.transformNode( xsl );
/**//*
load()函數加載XML文件
loadXML()函數加載字符串形式的XML數據
*/
}
</script>
<p>
<input type="submit" name="Submit" value="提交" onclick="showXML()" />
</p>
<div id="show"></div>
2.Vehicles.XML
<?XML version="1.0" encoding="gb2312"?>
<!--?XML-stylesheet href='Vehicles.xsl' type='text/xsl'?-->
<vehicles>
<vehicle year="1002" make="Land Rover" model="Discovery">
<mileage>36500</mileage>
<color>black</color>
<price>$32999</price>
</vehicle>
</vehicles>
3.Vehicles.xsl
<?XML version="1.0"?>
<xsl:stylesheet XMLns:xsl="http://www.w3.org/TR/WD=xsl">
<xsl:template match="/">
<Html>
<head>
<title>uuu</title>
</head>
<body>
<table align="center" border="2">
<tr>
<th>Year</th>
<th>Make</th>
<th>Model</th>
<th>Mileage</th>
<th>Color</th>
<th>Price</th>
</tr>
<xsl:for-each order-by="+price" select="vehicles/vehicle">
<tr>
<td><xsl:value-of select="@year"/></td>
<td><xsl:value-of select="@make"/></td>
<td><xsl:value-of select="@model"/></td>
<td><xsl:value-of select="mileage"/></td>
<td><xsl:value-of select="color"/></td>
<td><xsl:value-of select="price"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</Html>
</xsl:template>
</xsl:stylesheet>
4.說明
需要注意的XML加載後,XSL文件的加載,以及 XML.transformNode( xsl ) 方法。