Java/JSTL/XML

Материал из Java эксперт
Перейти к: навигация, поиск

JSTL: parse XML document

   <source lang="java">

<%@ taglib uri="http://java.sun.ru/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.ru/jstl/xml" prefix="x" %> <html>

 <head>
   <title>xml actions</title>
 </head>
 <body>
   This example parses XML and uses an XPath expression...
   <p/>
   <c:set var="someXML">
     <people>
       <person>
         <name>Joe</name>
         <age>30</age>
       </person>
       <person>
         <name>Rosy</name>
         <age>29</age>
       </person>
     </people>
   </c:set>
   <x:parse var="parsedDocument" xml="${someXML}" />
   Here is a list of people:
    <x:forEach select="$parsedDocument/people/person">
  • <x:out select="name" />
  •      </x:forEach>
    
 </body>

</html>


      </source>
   
  
 
  



JSTL XML Foreach

   <source lang="java">

<?xml version="1.0" encoding="ISO-8859-1"?> <students>

  <student id="1">
     <name>
        <first>Joe</first>
        <last>Y</last>
        <middle>T</middle>
     </name>
     <grade>
        <points>99</points>
        <letter>A</letter>
     </grade>
  </student>
  <student id="2">
     <name>
        <first>James</first>
        <last>Todd</last>
        <middle>K</middle>
     </name>
     <grade>
        <points>92</points>
        <letter>B</letter>
     </grade>
  </student>
  <student id="3">
     <name>
        <first>Kate</first>
        <last>Wang</last>
        <middle>A</middle>
     </name>
     <grade>
        <points>72</points>
        <letter>C</letter>
     </grade>
  </student>
  

</students>

/////////////////////////////////////////////////////////////////////////////////

<%@ taglib uri="http://java.sun.ru/jstl/core" prefix="c" %><%@ taglib uri="http://java.sun.ru/jstl/xml" prefix="x" %> <html>

 <head>
   <title>For Each Examples</title>
 </head>
 <body>
   <c:import var="students" url="students.xml" />
   <x:parse var="doc" xml="${students}" />
<x:forEach var="student" select="$doc/students/student"> </x:forEach>
First Last Points Letter
           <x:out select="name/first" />
           <x:out select="name/last" />
           <x:out select="grade/points" />
           <x:out select="grade/letter" />
 </body>

</html>


      </source>
   
  
 
  



JSTL XML Map Value

   <source lang="java">

<?xml version="1.0" encoding="ISO-8859-1"?> <students>

  <student id="1">
     <name>
        <first>Joe</first>
        <last>Y</last>
        <middle>T</middle>
     </name>
     <grade>
        <points>99</points>
        <letter>A</letter>
     </grade>
  </student>
  <student id="2">
     <name>
        <first>James</first>
        <last>Todd</last>
        <middle>K</middle>
     </name>
     <grade>
        <points>92</points>
        <letter>B</letter>
     </grade>
  </student>
  <student id="3">
     <name>
        <first>Kate</first>
        <last>Wang</last>
        <middle>A</middle>
     </name>
     <grade>
        <points>72</points>
        <letter>C</letter>
     </grade>
  </student>
  

</students>

/////////////////////////////////////////////////////////////////////////////// <%@ taglib uri="http://java.sun.ru/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.ru/jstl/xml" prefix="x" %> <html>

 <head>
   <title>Set Examples</title>
 </head>
 <body>
   <c:import var="students" url="students.xml" />
   <x:parse var="doc" xml="${students}" />
   <x:set var="a" select="$doc/students/student/name/first" />
   <x:set var="b"
   select="$doc/students/student[@id=2]/name/first" />
   <x:set var="c"
   select="$doc/students/student[@id=1]/name/first" />
$doc/students/student/name/first
         <x:out select="$a" />
$doc/students/student[@id=2]/name/first
         <x:out select="$b" />
$doc/students/student[@id=1]/name/first
         <x:out select="$c" />
 </body>

</html>

      </source>
   
  
 
  



JSTL XML Output

   <source lang="java">

<?xml version="1.0" encoding="ISO-8859-1"?> <students>

  <student id="1">
     <name>
        <first>Joe</first>
        <last>Y</last>
        <middle>T</middle>
     </name>
     <grade>
        <points>99</points>
        <letter>A</letter>
     </grade>
  </student>
  <student id="2">
     <name>
        <first>James</first>
        <last>Todd</last>
        <middle>K</middle>
     </name>
     <grade>
        <points>92</points>
        <letter>B</letter>
     </grade>
  </student>
  <student id="3">
     <name>
        <first>Kate</first>
        <last>Wang</last>
        <middle>A</middle>
     </name>
     <grade>
        <points>72</points>
        <letter>C</letter>
     </grade>
  </student>
  

</students> //////////////////////////////////////////////////////////////////////// <%@ taglib uri="http://java.sun.ru/jstl/core" prefix="c" %><%@ taglib uri="http://java.sun.ru/jstl/xml" prefix="x" %> <html>

 <head>
   <title>Out Examples</title>
 </head>
 <body>
   <c:import var="students" url="students.xml" />
   <x:parse var="doc" xml="${students}" />
$doc/students/student/name/first
         <x:out select="$doc/students/student/name/first" />
$doc/students/student[@id=1]/name/first
         <x:out
         select="$doc/students/student[@id=1]/name/first" />
$doc/students/student[@id=2]/name/first
         <x:out
         select="$doc/students/student[@id=2]/name/first" />
 </body>

</html>


      </source>
   
  
 
  



JSTL XML Parse

   <source lang="java">

<?xml version="1.0" encoding="ISO-8859-1"?> <students>

  <student id="1">
     <name>
        <first>Joe</first>
        <last>Y</last>
        <middle>T</middle>
     </name>
     <grade>
        <points>99</points>
        <letter>A</letter>
     </grade>
  </student>
  <student id="2">
     <name>
        <first>James</first>
        <last>Todd</last>
        <middle>K</middle>
     </name>
     <grade>
        <points>92</points>
        <letter>B</letter>
     </grade>
  </student>
  <student id="3">
     <name>
        <first>Kate</first>
        <last>Wang</last>
        <middle>A</middle>
     </name>
     <grade>
        <points>72</points>
        <letter>C</letter>
     </grade>
  </student>
  

</students>

/////////////////////////////////////////////////////////////////////////////// <%@ taglib uri="http://java.sun.ru/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.ru/jstl/xml" prefix="x" %> <html>

 <head>
   <title>Parse Examples</title>
 </head>
 <body>Please enter an XML file:
 
<form method="post"> <textarea rows="10" cols="50" name="xml"> <students> <student id="1"> <name> <first>John</first> <last>Smith</last> <middle>T</middle> </name> <grade> <points>88</points> <letter>B</letter> </grade> </student> <student id="2"> <name> <first>James</first> <last>Smith</last> <middle>K</middle> </name> <grade> <points>92</points> <letter>A</letter> </grade> </student> <student id="3"> <name> <first>Kelly</first> <last>Lane</last> <middle>A</middle> </name> <grade> <points>72</points> <letter>C</letter> </grade> </student> </students> </textarea>
<input type="submit" /> </form> <c:if test="${pageContext.request.method=="POST"}"> <x:parse var="doc" xml="${param.xml}" />
$doc/students/student/name/first
         <x:out select="$doc/students/student/name/first" />
$doc/students/student[@id=2]/name/first
         <x:out
         select="$doc/students/student[@id=2]/name/first" />
$doc/students/student[@id=1]/name/first
         <x:out
         select="$doc/students/student[@id=12]/name/first" />
 </c:if>
 </body>

</html>


      </source>
   
  
 
  



JSTL XML XPath

   <source lang="java">

<?xml version="1.0" encoding="ISO-8859-1"?> <students>

  <student id="1">
     <name>
        <first>Joe</first>
        <last>Y</last>
        <middle>T</middle>
     </name>
     <grade>
        <points>99</points>
        <letter>A</letter>
     </grade>
  </student>
  <student id="2">
     <name>
        <first>James</first>
        <last>Todd</last>
        <middle>K</middle>
     </name>
     <grade>
        <points>92</points>
        <letter>B</letter>
     </grade>
  </student>
  <student id="3">
     <name>
        <first>Kate</first>
        <last>Wang</last>
        <middle>A</middle>
     </name>
     <grade>
        <points>72</points>
        <letter>C</letter>
     </grade>
  </student>
  

</students> //////////////////////////////////////////////////////////////////////////////// <%@ taglib uri="http://java.sun.ru/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.ru/jstl/xml" prefix="x" %> <html>

 <head>
   <title>Parse Examples</title>
 </head>
 <body>Please enter an XML file:
 
<form method="post"> <textarea rows="10" cols="50" name="xml"> <students> <student id="1"> <name> <first>John</first> <last>Smith</last> <middle>T</middle> </name> <grade> <points>88</points> <letter>B</letter> </grade> </student> <student id="2"> <name> <first>James</first> <last>Smith</last> <middle>K</middle> </name> <grade> <points>92</points> <letter>A</letter> </grade> </student> <student id="3"> <name> <first>Kelly</first> <last>Lane</last> <middle>A</middle> </name> <grade> <points>72</points> <letter>C</letter> </grade> </student> </students> </textarea>
<input type="submit" /> </form> <c:if test="${pageContext.request.method=="POST"}"> <x:parse var="doc" xml="${param.xml}" />
$doc/students/student/name/first
         <x:out select="$doc/students/student/name/first" />
$doc/students/student[@id=2]/name/first
         <x:out
         select="$doc/students/student[@id=2]/name/first" />
$doc/students/student[@id=1]/name/first
         <x:out
         select="$doc/students/student[@id=12]/name/first" />
 </c:if>
 </body>

</html>


      </source>
   
  
 
  



JSTL XML XPath Choose

   <source lang="java">

<?xml version="1.0" encoding="ISO-8859-1"?> <students>

  <student id="1">
     <name>
        <first>Joe</first>
        <last>Y</last>
        <middle>T</middle>
     </name>
     <grade>
        <points>99</points>
        <letter>A</letter>
     </grade>
  </student>
  <student id="2">
     <name>
        <first>James</first>
        <last>Todd</last>
        <middle>K</middle>
     </name>
     <grade>
        <points>92</points>
        <letter>B</letter>
     </grade>
  </student>
  <student id="3">
     <name>
        <first>Kate</first>
        <last>Wang</last>
        <middle>A</middle>
     </name>
     <grade>
        <points>72</points>
        <letter>C</letter>
     </grade>
  </student>
  

</students>

///////////////////////////////////////////////////////////////////////////////////////// <%@ taglib uri="http://java.sun.ru/jstl/core" prefix="c" %><%@ taglib uri="http://java.sun.ru/jstl/xml" prefix="x" %> <html>

 <head>
   <title>For Each Examples</title>
 </head>
 <body>
   <c:import var="students" url="students.xml" />
   <x:parse var="doc" xml="${students}" />
<x:forEach var="student" select="$doc/students/student"> </x:forEach>
First Last Points Letter Note
           <x:out select="name/first" />
           <x:out select="name/last" />
           <x:out select="grade/points" />
           <x:out select="grade/letter" />
           <x:choose>
             <x:when select="grade/points>90">You did
             great!</x:when>
             <x:when select="grade/points>80">You did
             good!</x:when>
             <x:when select="grade/points>75">You did
             ok.</x:when>
             <x:when select="grade/points>70">Well, you
             passed.</x:when>
             <x:otherwise>You failed</x:otherwise>
           </x:choose>
 </body>

</html>


      </source>
   
  
 
  



JSTL XML XPath Select

   <source lang="java">

<%@ taglib uri="http://java.sun.ru/jstl/core" prefix="c" %><%@ taglib uri="http://java.sun.ru/jstl/xml" prefix="x" %> <html>

 <head>
   <title>Reading RSS</title>
 </head>
 <body>
   <c:import var="news"
   url="http://www.wired.ru/news_drop/netcenter/netcenter.rdf" />
   <x:parse var="doc" xml="${news}" />
<x:forEach var="story" select="$doc/rss/channel/item">
         
           
             <x:out select="$doc/rss/channel/title" />
           
         
         
<x:out select="$doc/rss/channel/pubDate" />
         <x:out select="$doc/rss/channel/description" />



JSTL XML XPath: Wired New

   <source lang="java">

<%@ taglib uri="http://java.sun.ru/jstl/core" prefix="c" %><%@ taglib uri="http://java.sun.ru/jstl/xml" prefix="x" %> <html>

 <head>
   <title>Reading RSS</title>
 </head>
 <body>
   <c:import var="news"
   url="http://www.wired.ru/news_drop/netcenter/netcenter.rdf" />
   <x:parse var="doc" xml="${news}" />
<x:forEach var="story" select="$doc/rss/channel/item">
         
           
             <x:out select="$doc/rss/channel/title" />
           
         
         
<x:out select="$doc/rss/channel/pubDate" />
         <x:out select="$doc/rss/channel/description" />