JSTL XML < x:parse > 标签
<x:parse> 标签用于解析通过一个属性或在标签本体中指定的 MXL 数据。
属性:
<x:parse> 标签具有如下所示属性:
| 属性 | 描述 | 是否必需 | 默认值 |
|---|---|---|---|
| var | 包含解析的 XML 数据的变量 | 否 | 无 |
| xml | 要解析的文档文本 (String 或 Reader) | 否 | Body |
| systemId | 解析文档的系统标识符 URI | 否 | 无 |
| filter | 应用于源文档的过滤器 | 否 | 无 |
| doc | 要被解析的 XML 文档 | 否 | 页面 |
| scope | 在 var 属性中指定的变量范围 | 否 | 页面 |
| varDom | 包含解析的 XML 数据的变量 | 否 | 页面 |
| scopeDom | 在 varDom 属性中指定的变量范围 | 否 | 页面 |
实例:
下述的例子中描述了解析是怎样用来读取和解析外部的 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>
现在尝试下述的 main.jsp,并保存在相同的目录中:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<html>
<head>
<title>JSTL x:parse Tags</title>
</head>
<body>
<h3>Books Info:</h3>
<c:import var="bookInfo" url="http://localhost:8080/books.xml"/>
<x:parse xml="${bookInfo}" var="output"/>
<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" />
</body>
</html>
现在用 http://localhost:8080/main.jsp 尝试访问上述 JSP,这会产生如下所示结果:
Books Info:
The title of the first book is:Padam History
The price of the second book: 2000