XML标签

SQL标签库提供了创建和操作XML文档的标签。

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

导入包:http://www.apache.org/dist/xerces/j/ 进行下载

解压,提取xalan.jar 和 xercesImpl.jar ,导入工程中。

XML标签都有:

标签 描述
<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>

语法:

属性 描述 是否必要 默认值
select 需要计算的XPath表达式,通常使用XPath 变量
escapeXml 是否忽略XML 特殊字符 true

<x:parse> 用来解析属性中或标签主体中的XML数据

语法:

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

属性 描述 是否必要 默认值
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>
//输出结果为:

时间: 2024-10-20 06:44:55

XML标签的相关文章

ibatis XML标签的含义

selectKey: 有3个主要的属性: 1)resultClass:返回的主键的数据类型,跟sqlMap中的数据类型一致: 2)type:表示主键在insert之前或之后生成(取决于数据库的主键生成策略),取值分别为[pre|post],非必须,未填写时如果在insert之前表示pre,否则表示post: 3)keyProperty:返回值保存到的属性,非必须(作用参见Oracle配置): <selectKey property="DeliHeadId" type="

C#正则表达式去除XML标签

案例1: //数据源 String strSource = "<Sample>xxx<Extract>100</Extract></Sample> 11 <Extract>100<Extract>"; //表达式 String matchpattern = @"<([^>]*)>(.*?)<\/\1>"; //$2=(.*?) 进行替换 String replace

JSP标准标签库(JSTL)--XML标签库 x

³在开发中XML解析的操作是非常烦琐的,幸运的是在JSTL中专门提供了用于XML解析的操作,这样用户就可以不用费力的去研究SAX或DOM等操作的使用,就可以轻松的进行XML文件的解析处理. XML标签: No. 功能分类 标签名称 描述 1 核心操作 <x:out> 输出XPath指定的内容 2 <x:parse> 进行XML解析 3 <x:set> 将内容保存在属性范围之中 4 流程控制 <x:if> 判断XPath指定的内容是否满足条件 5 <x:

(5)JSTL的xml标签库

Jstl的XML标签库 JSTL提供了操作xml文件的标签库,使用xml标签库可以省去使用Dom和SAX标签库的繁琐,能轻松的读取xml文件的内容. <%@ taglib uri="http://java.sun.com/jsp/ustl/XML" prefix = "x"> 1.<x:parse>标签 <x:parse/>标签用来解析指定的xml文件. 属性说明 属性名 说明 EL 类型 必须 默认值 doc 指定解析的xml文

xml标签格式,属性以及防止编码乱码

xml标签格式: 1.xml是可扩展性标记语言,后缀名必须以xml结尾. 2.标签不像html那样有固定标签,xml标签可自已编写,不过要保证具有语义化. 3.标签名可以有空标签<student/>和含有内容的标签如:<student></student> 4.含有内容的标签,要保证前后一致性,里面不能包含空格. 5.标签不能以数字开头 xml属性: xml属性和html类似,不过属性名不能够重复. 对于解决编码问题: 1.要保证保存和读取编码一致. 2.要能够读取中文

13.javaweb xml标签库详解

一.XML标签简介 1,  作用 2,  标签分类 XPath 路径标记 查找节点元素示例 2.1<x:out> 2.2<x:parse> 操作示例:导入XML文件,解析,然后输出指定节点元素 2.3<x:set> 2.4<x:if> 使用示例 2.5< x:choose >,<x:when>,<x:otherwise> 2.6<x:forEach> 使用示例 XML文件 标签迭代 3.小结:XML标签可方便地

dubbo源码—dubbo自定义spring xml标签

dubbo为了和spring更好的集成,提供了一些xml配置标签,也就是自定义标签 spring自定义标签 spring自定义标签的方式如下: 设计配置属性和JavaBean 编写xsd文件,校验xml属性和便于编辑器提示 编写NamespaceHandler和BeanDefinitionParser解析xml对应的标签 编写spring.handlers和spring.schemas串联起所有部件,放在META_INF下面 在xml中引入对应的标签就可以使用 dubbo自定义标签 dubbo对

tomcat 配置文件server.xml标签介绍

tomcat的配置文件在其安装后生成的conf目录下,其中主配置文件便是conf下的server.xml文件. server.xml文件由server->service->engine->host->context结构组成. server标签: tomcat实例顶层元素,代表整个容器.server标签里面指定了监听shutdown命令的端口.默认为8005 <Server port="8005" shutdown="SHUTDOWN"&

maven POM.xml 标签详解

<span style="padding:0px; margin:0px"><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.ap