XML標籤

SQL標籤庫提供了建立和操做XML文檔的標籤。html

引入語法:<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>java

導入包:http://www.apache.org/dist/xerces/j/ 進行下載apache

解壓,提取xalan.jar 和 xercesImpl.jar ,導入工程中。app

 

XML標籤都有:jsp

標籤 描述
<x:out> 與<%= ... >,相似,不過只用於XPath表達式
<x:parse> 解析 XML 數據
<x:set> 設置XPath表達式
<x:if> 判斷XPath表達式,若爲真,則執行本體中的內容,不然跳過本體
<x:forEach> 迭代XML文檔中的節點
<x:choose> <x:when>和<x:otherwise>的父標籤
<x:when> <x:choose>的子標籤,用來進行條件判斷
<x:otherwise> <x:choose>的子標籤,當<x:when>判斷爲false時被執行
<x:transform> 將XSL轉換應用在XML文檔中
<x:param> 與<x:transform>共同使用,用於設置XSL樣式表

<x:out> 顯示XPath表達式的結果,相似於<c:out>url

語法:spa

屬性 描述 是否必要 默認值
select 須要計算的XPath表達式,一般使用XPath 變量
escapeXml 是否忽略XML 特殊字符 true

 

<x:parse> 用來解析屬性中或標籤主體中的XML數據code

語法:orm

<x:parse xml="xml文本變量" var="使用變量" />xml

屬性 描述 是否必要 默認值
var 包含已解析XML數據的變量
xml 須要解析的文檔的文本內容(String或Reader) Body
systemId 系統標識符URI,用來解析文檔
filter 應用於源文檔的過濾器
doc 須要解析的XML文檔 Page
scope var屬性的做用域 Page
varDom 包含已解析XML數據的變量 Page
scopeDom varDom屬性的做用域 Page

eg:

 

<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<html>
<head>
<title>Using JSTL Functions</title>
</head>
<body>
    <c:set var="xmltext">
        <books>
            <book>
                <name>Padam History</name>
                <author>ZARA</author>
                <price>100</price>
            </book>
            <book>
                <name>Great Mistry</name>
                <author>NUHA</author>
                <price>2000</price>
            </book>
        </books>
    </c:set>
    
    <x:parse xml="${xmltext}" var="output" />
    <p>關於第一本書的信息:</p>
    name:<x:out select="$output/books/book[1]/name" /><br>
    author:<x:out select="$output/books/book[1]/author" /><br>
    price:<x:out select="$output/books/book[1]/price" /><br>
    
</body>
</html>

//輸出結果爲:

  關於第一本書的信息:

  name:Padam History
author:ZARA
price:100
 

 

<x:set> 爲XPath表達式的值設置一個變量

語法:

屬性 描述 是否必要 默認值
var 表明XPath表達式值得變量 Body
select 須要計算的XPath表達式
scope var屬性的做用域 Page

eg:

<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<html>
<head>
<title>Using JSTL Functions</title>
</head>
<body>
    <c:set var="xmltext">
        <books>
            <book>
                <name>Padam History</name>
                <author>ZARA</author>
                <price>100</price>
            </book>
            <book>
                <name>Great Mistry</name>
                <author>NUHA</author>
                <price>2000</price>
            </book>
        </books>
    </c:set>
    
    <x:parse xml="${xmltext}" var="output" />
    <x:set var="fragment" select="$output//book" />
    <p>子節點中book節點值爲:<c:out value="${fragment}" /></p>
</body>
</html>

//輸出結果爲:
子節點中book節點值爲:[]

 

<x:if> 判斷一個XPath表達式的值,若爲真則執行

語法:

屬性 描述 是否必要 默認值
select 須要計算的XPath表達式
var 存儲條件結果的變量
scope var屬性的做用域 Page

eg:

<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<html>
<head>
<title>Using JSTL Functions</title>
</head>
<body>
    <c:set var="xmltext">
        <books>
            <book>
                <name>Padam History</name>
                <author>ZARA</author>
                <price>100</price>
            </book>
            <book>
                <name>Great Mistry</name>
                <author>NUHA</author>
                <price>2000</price>
            </book>
        </books>
    </c:set>
    
    <x:parse xml="${xmltext}" var="output" />
  
    <x:if select="$output/books/bookp[1]/price >100">
        Book1 prices are very high
        <x:out select="$output/books/book[1]/price <100" />
    </x:if>
        <x:if select="$output/books/book[2]/price >100">
        Book2 prices are very high
    </x:if>
</body>
</html>

//輸出結果爲:
Book2 prices are very high

 

 

<x:forEach> 循環遍歷各節點

語法:

屬性 描述 是否必要 默認值
select 須要計算的XPath表達式
var 用於存儲當前項目的變量
begin 迭代器的開始索引
end 迭代器的結束索引
step 迭代的步長
varStatus 表明迭代器所存儲的狀態的變量

eg:

<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<html>
<head>
<title>Using JSTL Functions</title>
</head>
<body>
    <c:set var="xmltext">
        <books>
            <book>
                <name>Padam History</name>
                <author>ZARA</author>
                <price>100</price>
            </book>
            <book>
                <name>Great Mistry</name>
                <author>NUHA</author>
                <price>2000</price>
            </book>
        </books>
    </c:set>
    
    <x:parse xml="${xmltext}" var="output" />
    <p>循環books子節點:
        <x:forEach select="$output//book" var="item" >
            <c:out value="${item }" />
        </x:forEach>
    </p>
</body>
</html>

//輸出結果爲:
循環books子節點: [book: null] [book: null]

 

<x:choose> 相似於switch標籤

語法:

<x:choose>

  <x:when><?x:when>

  ...

  <x:otherwise><x:otherwise>

</x:choose>

 

<x:when> 判斷條件至關於if,屬於<x:choose>的子標籤

語法:

<x:when select="條件">

屬性 描述 是否必要 默認值
select 條件

 

<x:otherwise> 至關於switch中的default,屬於<x:choose>的子標籤

 

eg:

<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<html>
<head>
<title>Using JSTL Functions</title>
</head>
<body>
    <c:set var="xmltext">
        <books>
            <book>
                <name>Padam History</name>
                <author>ZARA</author>
                <price>100</price>
            </book>
            <book>
                <name>Great Mistry</name>
                <author>NUHA</author>
                <price>2000</price>
            </book>
        </books>
    </c:set>
    
    <x:parse xml="${xmltext}" var="output" />
    <p>判斷第一本書的做者:
        <x:choose>
            <x:when select="$output//book/author='ZARA'">
                Book is written by ZARA
            </x:when>
            <x:when select="$output//book/author='NUHA'">
                Book is written by NUHA
            </x:when>
            <x:otherwise>
                Unknown author
            </x:otherwise>
        </x:choose>
    </p>
</body>
</html>

//輸出結果爲:
判斷第一本書的做者: Book is written by ZAR

 

 

<x:transform> 將XSL轉換應用在XML文檔中

語法:

屬性 描述 是否必要 默認值
doc 源XML文檔 Body
docSystemId 源XML文檔的URI
xslt XSLT 樣式表
xsltSystemId 源XSLT文檔的URI
result 接收轉換結果的對象 Print to page
var 表明被轉換的XML文檔的變量 Print to page
scope var屬性的做用域

 

<x:param>  在<x:transform>中使用,設置參數名稱

語法:

屬性 描述 是否必要 默認值
name XSLT參數的名稱 Body
value XSLT參數的值

eg:

xsl:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" indent="yes" />
    <xsl:param name="bgcolor" />
    <xsl:template match="/">
        <html>
            <body>
                <xsl:apply-templates />
            </body>
        </html>
    </xsl:template>
    
    <xsl:template match="books">
        <table border="1" width="100%" bgColor="{$bgcolor}">
            <xsl:for-each select="book">
                <tr>
                    <td>
                        <i><xsl:value-of select="name" /></i>
                    </td>
                    <td>
                        <i><xsl:value-of select="author" /></i>
                    </td>
                    <td>
                        <i><xsl:value-of select="price" /></i>
                    </td>
                </tr>
            </xsl:for-each>
            
        </table>
    </xsl:template>
    
</xsl:stylesheet>

 

html:

<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<html>
<head>
<title>Using JSTL Functions</title>
</head>
<body>
    <c:set var="xmltext">
        <books>
            <book>
                <name>Padam History</name>
                <author>ZARA</author>
                <price>100</price>
            </book>
            <book>
                <name>Great Mistry</name>
                <author>NUHA</author>
                <price>2000</price>
            </book>
        </books>
    </c:set>
    
      <c:import url="http://localhost:8080/test2/style.xsl" var="xslt" />
      <p>將xml文檔按照格式輸出:
          <x:transform xml="${xmltext}" xslt="${xslt}" >
              <x:param name="bgcolor" value="red"/>
          </x:transform>
      </p>
</body>
</html>

 

//輸出結果爲:

相關文章
相關標籤/搜索