标签读取xml的简单示例

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %> 
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>xml标签库测试</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
  
  <!-- 
          这次操作的xml的文件的结构
     <?xml version="1.0" encoding="UTF-8"?>
        <score>
        <anser qid="1" type="choice" order="1">B</anser>
        <anser qid="2" type="choice" order="2">B</anser>
        <anser qid="4" type="choice" order="3">D</anser>
        <anser qid="5" type="choice" order="4">C</anser>
        <anser qid="6" type="choice" order="5">B</anser>
        <anser qid="8" type="choice" order="6">C</anser>
        <anser qid="9" type="choice" order="7">A</anser>
        <anser qid="12" type="choice" order="8">D</anser>
        <anser qid="13" type="choice" order="9">A</anser>
        <anser qid="16" type="choice" order="10">D</anser>
        </score>
    -->
  
  <body>
    <center><h3>xml测试</h3></center>
    
    
    <c:import url="style.xml" var="xmldoc" />  <!-- 将xml文件包含进来-->
    <x:parse doc="${xmldoc}" var="xpath" />  <!-- 对xml文件进行解析 -->
      score: <x:out select="$xpath//score" /><br />  <!-- 读取到所有的score  结果:$xpath//score: B B D C B C A D A D  -->
      anser第9个: <x:out select="$xpath//score/anser[9]"/><br /><!-- anser第9个: A -->
      anser最后一个: <x:out select="$xpath//score/anser[last()]"/><br /><!-- anser最后一个: D -->
      anser最后一个的id属性: <x:out select="$xpath//score/anser[last()]/@qid"/><br /><!-- anser最后一个的id属性: 16 -->
      anserid为8的type值: <x:out select="$xpath//score/anser[@qid=8]/@type"/><br /><!--anserid为8的type值: choice -->
<br/><br/><br/><br/><br/><br/>
    <!-- x:if流程控制    -->
      <x:if select="$xpath//score/anser[@qid=8]/@type">
                              qid为8的答案的题目 类型是选择题
      </x:if>
           <!-- 运行结果  qid为8的答案的题目 类型是选择题 --> 
           <br/><br/><br/><br/><br/><br/>
           
   <!--   choose when otherWise标签的使用: -->
    <x:choose>  
        <x:when select="$xpath//score/anser[@type='choice']">  
                所有选择题的答案:<x:out select="$xpath//score/anser" />  
        </x:when>  
        <x:otherwise>  
            <c:out value="这不是你要查找的选择题"></c:out>  
        </x:otherwise>  
    </x:choose>   
    <!-- 运行结果    所有选择题的答案:B-->
    
      <br/><br/><br/><br/><br/><br/>  
      所有成绩: 
     <x:forEach select="$xpath//score" var="score">  
        <x:out select="$score"/><br/>  
    </x:forEach>  
    
    
     <!-- 运行结果     所有成绩: B B D C B C A D A D  -->    
  </body>
</html>

 

posted @ 2013-02-01 18:17  虎猫  阅读(368)  评论(0编辑  收藏  举报