• JSP JSTL <x:out>标签:输出XML信息

    <x:out> 标签和 <c:out> 标签类似,它们都是输出标签,<x:out> 标签主要用于输出 XML 信息。

    语法:

    <x:out select="XPathExpression"[escapeXml="{true|false}"]/>
    <x:out select="XPathExpression"[escapeXml="{true|false}"]>
    </x:out>

    说明:<x:set> 标签有两种语法格式,这两种语法格式的输出结果完全相同。

    <x:out> 标签各属性的详细介绍如表所示。

    <x:out> 标签属性
    属性 类型 描述 引用 EL
    select String XPath语句的表达式,用于查询指定节点的属性值 不可以
    escapeXml boolean 指定是否要转换特殊字符,这些特殊字符包括<、>、&、‘和"。默认为true 可以

    XPath 表达式使用路径表示法寻址 XML 文档的各个部分,包括 XML 文档的根节点、父节点、子节点和兄弟节点等。常用的 XPath 表达式及对应的功能如表所示。

    XPath 表达式及对应功能
    表达式 功能 表达式 功能
    / 根节点 ../节点名称 兄弟节点
    ./ 文件节点 //节点名称 所有同一节点
    ../ 父节点 @属性名称 属性
    节点名称 子节点 * 全局

    说明:在XML文件中,属性值或元素内容中不能出现 <、>、&、'和"等字符,当这些内容中必须包括这些字符时,可以应用对应的实体代码表示。下表给出<、>、&、'和"等字符的实体代码。

    特殊字符的实体代码
    字符 实体代码 字符 实体代码
    < &lt; > &gt;
    & &amp; &#039;
    " &#034;    

    示例

    首先通过 <c:import> 标签导入 bookInfo.xml 文件,然后通过 <x:parse> 标签解析 bookInfo.xml 文件的内容,最后通过 <x:out> 标签输出 XML 文件中的部分内容,关键代码如下:

    <%@taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%>
      <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
        <c:import url="bookInfo.xml" var="xmlFile"charEncoding="gbk"/>
        <x:parse var="bookInfo" doc="${xmlFile}"></x:parse>
        编号:<x:out select="$bookInfo/books/book/id/@value"/><br>
        书名:<x:out select="$bookInfo/books/book/name"escapeXml="true"/><br>
        出版社:<x:out select="$bookInfo/books/book/publish/@value"/>

    bookInfo.xml文件的内容如下:

    <?xml version="1.0"encoding="gbk"?>
    <books>
      <book>
        <id value="1"/>
        <name>&lt;&lt;Java开发宝典&gt;&gt;</name>
        <author value="C"/>
        <publish value="机械工业出版社"/>
      </book>
    </books>

    运行本示例,运行结果如下:
    编号:1
    书名:《Java开发宝典》
    出版社:机械工业出版社

    如果将示例中的以下代码:

    书名:<x:out select="$bookInfo/books/book/name"escapeXml="true"/>

    修改为:

    书名:<x:out select="$bookInfo/books/book/name"escapeXml="false"/>

    运行结果如下:
    编号:1
    书名:<>
    出版社:机械工业出版社

    典型应用

    下面以 book.xml 文件内容为例,演示如何使用 <x:out> 标签读取 XML 信息。
    程序关键代码如下:

    1)index.jsp 是首页文件,读取 XML 文件的节点属性,应用 <x:out> 进行数据输出。

    <%@page pageEncoding="gbk" contentType="text/html;charset=GBK"%>
      <%@taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%>
        <%@taglib prefix="c" uri="/WEB-INF/c.tld"%>
          <c:import url="book.xml" var="xmlFile" charEncoding="gb2312"/>
          <x:parse var="tushu" doc="${xmlFile}"/>
          <table width="300" border="1" cellpadding="0" cellspacing="0"
                 bordercolor="white" bordercolordark="white" bordercolorlight="black">
            <tr>
              <td bgcolor="gray">ID:</td><td>
              <x:out select="$tushu/books/book/id/@value"/></td>
            </tr>
            <tr>
              <td bgcolor="gray">NAME:</td><td>
              <x:out select="$tushu/books/book/name/@value"/></td>
            </tr>
            <tr>
              <td bgcolor="gray">PUBLISH:</td>
              <td><x:out select="$tushu/books/book/publish/@value"/></td>
            </tr>
            <tr>
              <td bgcolor="gray">PRICE:</td>
              <td><x:out select="$tushu/books/book/price/@value"/></td>
            </tr>
          </table>

    2)被读取的 XML 文件 book.xml 包含的图书信息有 id、name、publish 等子节点,每个节点都以 value 属性定义属性值。

    <?xml version="1.0" encoding="gbk"?>
    <books>
      <book>
        <id value="9787111378471"/>
        <name value="Java开发宝典"/>
        <publish value="机械工业出版社"/>
        <price value="99.00"/>
      </book>
    </books>

    运行结果如下:

    ID: 9787111378471
    NAME: Java开发宝典
    PUBLISH: 机械工业出版社
    PRICE: 99.00

更多...

加载中...