XML Tag提供xml的解析。然而JSON已经大量地替代XML,使用XML情况会较少,而且有高效的lib将对象转换为json和xml,因此xml tag很少会用到,稍作了解。可以参考https://www.tutorialspoint.com/jsp/jsp_xml_data.htm。
输出xml的jsp
<%@ page contentType="text/xml" %>
<books>
<book>
<name>Padam History</name>
<author>ZARA</author>
<price>100</price>
</book>
</books>
访问这个jsp
解析xml
有一个xml文件books.xml
<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>
step one:进入xml tag<
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
step two:import和解析
<c:import var="bookInfo" url="http://localhost:8080/chapter07/books.xml"/>
<x:parse doc="${bookInfo}" var="output" />
step three:获取解析后的数据
轮询:
<x:forEach select="$output/books/book" var="book">
name : <x:out select="$book/name" /><br />
author : <x:out select="$book/author" /><br />
price : <x:out select="$book/price" /><br /><br />
</x:forEach>
也可以:
<x:forEach select="$output/books/book">
name : <x:out select="name" /><br />
author : <x:out select="author" /><br />
price : <x:out select="price" /><br /><br />
</x:forEach>
指定:
<b>The title of the first book is</b>:
<x:out select="$output/books/book[1]/name" />
<br>
<b>The price of the second book</b>:
<x:out select="$output/books/book[2]/price" />
补充
我们可以写成 ${somevaule},也可以写成<c:out value="${somevalue}"/>,建议使用后者,因为<c:out>是escapeXml,以防会出现任何意外,除非我们明确知道somevaule是个整数等非字符型的。要养成这个良好习惯。
<c:forEach items="${ticketDatabase }" var="entry">
Ticket # <c:out value="${entry.key}"/>(
<a href="<c:url value="tickets">
<c:param name="action" value="view"/>
<c:param name="ticketId" value="${entry.key}" />
</c:url> ">
<c:out value="${entry.value.subject}"/></a> customer: <c:out value="${entry.value.customerName}"/>)<br />
</c:forEach>