STL提供了操作xml文件的标签库,使用标签库可以省去使用Dom和SAX标签库的繁琐,能轻松的读取文件的内容。@H_404_21@
@H_404_21@
1XML核心标签库
<x:parse/>标签用来解析指定的xml文件。@H_404_21@
【语法1】:@H_404_21@
<x:parsedoc=”xmlDocument”@H_404_21@
{var=”name”[scope=”page|request|session|application”]|varDom=”name”[scope=”page|request|session|application”]}@H_404_21@
systemId=”systemId”@H_404_21@
filter=”filter”@H_404_21@
/>@H_404_21@
【语法2】:@H_404_21@
<x:parse@H_404_21@
>@H_404_21@
xmlDocument@H_404_21@
</x:parse>@H_404_21@
【参数说明】:<x:parse>标签属性说明@H_404_21@
说明@H_404_21@ |
EL@H_404_21@ |
类型@H_404_21@ |
必须@H_404_21@ |
默认值@H_404_21@ |
|||||||
doc@H_404_21@ |
是@H_404_21@ |
String/Reader@H_404_21@ |
是@H_404_21@ |
无@H_404_21@ |
|||||||
var@H_404_21@ |
否@H_404_21@ |
String@H_404_21@ |
否@H_404_21@ |
scope@H_404_21@ |
指定var的JSP范围@H_404_21@ |
page@H_404_21@ |
|||||
varDom@H_404_21@ |
scopeDom@H_404_21@ |
指定varDom的JSP范围@H_404_21@ |
systemId@H_404_21@ |
filter@H_404_21@ |
否@H_404_21@ |
Org.xml.sax.Filter@H_404_21@ |
否@H_404_21@ |
无@H_404_21@ |
提示:doc指定解析的xml文件并不是指定xml文件的路径,而是同<c:import>共同使用,由<c:import>加载并存储,然后使用<x:parse>解析。@H_404_21@
例如:如果解析person.xml文件需要通过如下代码实现对xml文件的解析。@H_404_21@
<c:import var="docString" url="person.xml"/><!--引入person.xml文件-->@H_404_21@
<x:parse var="doc" doc="${docString}"/>@H_404_21@
<c:import>语句用来导入或存储文件到JSP。如果不使用var来存储,xml文件将显式的出现在JSP文件中。@H_404_21@
<x:parse>标签只用来解析xml文件,并不显示xml文件中的内容,如果想得到xml的节点元素或值需要使用<x:out>元素来实现。@H_404_21@
<x:out>标签主要用来输出xml的信息。@H_404_21@
【语法】:@H_404_21@
<x:out select=”XpathExpeRSSion”[excapeXml=”true|false”]>@H_404_21@
【参数说明】:<x:out>标签属性说明@H_404_21@
说明@H_404_21@ |
EL@H_404_21@ |
类型@H_404_21@ |
必须@H_404_21@ |
默认值@H_404_21@ |
|
select@H_404_21@ |
指定使用的XPath语句@H_404_21@ |
否@H_404_21@ |
String@H_404_21@ |
是@H_404_21@ |
无@H_404_21@ |
escapeXml@H_404_21@ |
是否转换特殊字符。如<等@H_404_21@ |
否@H_404_21@ |
boolean@H_404_21@ |
是@H_404_21@ |
true@H_404_21@ |
提示:使用XPath语句需要用到xalan.jar支持包,可以从示例程序的lib中获取,获得直接从myEclipse中可以找到。@H_404_21@
<x:set>标签用于将从xml文件节点解析的内容存储到JSP属性范围中。@H_404_21@
<x:set select=”XPathExpeRSSion” var=”name” scope=”page|request|session|application”>@H_404_21@
【参数说明】:@H_404_21@
(1)select通过指定的XPath表达式语句获取节点的值。@H_404_21@
(2)var指定用于存储值的变量名。@H_404_21@
2XML流程控制
使用xml标签库的流程控制标签可以迭代处理xml文件的内容,流程控制可以分为以下两个方面的内容:@H_404_21@
1.<x:if>@H_404_21@
<x:if select=”XPathExpeRSSion” var=”name”[scope=”page|request|session|application”]/>@H_404_21@
<x:if select=”XPathExpeRSSion” var=”name”[scope=”page|request|session|application”]>@H_404_21@
</x:if>@H_404_21@
语法1只把根据条件表达式得到的结果的存储在JSP范围中,语法2根据<x:if>标签根据条件表达式的结果决定是否执行本体内的代码。@H_404_21@
(1)select用来指定使用的XpathExpeRSSion表达式。@H_404_21@
(2)var设定标量名用来存储表达式的结果。@H_404_21@
(3)scope指定var存储的JSP属性范围。@H_404_21@
2.<x:choose>、<x:when>和<x:otherwise>标签@H_404_21@
同核心标签库的<c:choose>、<c:when>和<c:otherwise>标签作用相似,只是使用的条件表达式不同。@H_404_21@
<x;choose>是主标签,<x:when>和<x:otherwise>放在<x:choose>标签体内共同使用。@H_404_21@
<x:choose>@H_404_21@
<x:when>@H_404_21@
<x:otherwise>@H_404_21@
</x:choose>@H_404_21@
<x:when select=”XPathExpeRSSion”>@H_404_21@
<x;forEach>标签实现了对xml文档的遍历。@H_404_21@
<x:forEach select=”XPathExpeRSSion”[var=”name”][varStartus=”StartusName”]@H_404_21@
[begin=”begin”][end=”end”][step=”step”]>@H_404_21@
</x:forEach>@H_404_21@
【参数说明】:<x:forEach>标签属性说明@H_404_21@
说明@H_404_21@ |
EL@H_404_21@ |
类型@H_404_21@ |
必须@H_404_21@ |
默认值@H_404_21@ |
||||||||||
select@H_404_21@ |
指定使用的XPath语句@H_404_21@ |
否@H_404_21@ |
String@H_404_21@ |
是@H_404_21@ |
无@H_404_21@ |
|||||||||
var@H_404_21@ |
用于存储表达式的结果@H_404_21@ |
否@H_404_21@ |
varStatus@H_404_21@ |
用来存放循环到的变量的相关信息@H_404_21@ |
begin@H_404_21@ |
循环的起始位置@H_404_21@ |
是@H_404_21@ |
int@H_404_21@ |
end@H_404_21@ |
循环的终止位置@H_404_21@ |
是@H_404_21@ |
int@H_404_21@ |
否@H_404_21@ |
无@H_404_21@ |
3xml的文件转换
<x:transform>和<x:param>能轻易使用XSLT样式包装xml文件,成为另一种显示方式。@H_404_21@
使用该标签可以轻松的实现xml到XSLT的转化。@H_404_21@
<x:transform doc=”xmldoc” xslt=”XSLTStytlesheet”[docSystemId=”xmlsystemid”]@H_404_21@
[result=”result”]@H_404_21@
[var=”name”]@H_404_21@
[scope=”scopeName”]@H_404_21@
[xsltSystemId=”xsltsystemid”]/>@H_404_21@
[xsltSystemId=”xsltsystemid”]@H_404_21@
<x:param/>@H_404_21@
</x:transform>@H_404_21@
【语法3】:@H_404_21@
【参数说明】:<x:transform>标签属性说明@H_404_21@
说明@H_404_21@ |
EL@H_404_21@ |
@H_502_932@ 必须@H_404_21@ |
默认值@H_404_21@ |
|||||||||||||||
doc@H_404_21@ |
是@H_404_21@ |
String@H_404_21@ |
是@H_404_21@ |
无@H_404_21@ |
||||||||||||||
xslt@H_404_21@ |
转化xml的样式模板@H_404_21@ |
docSystemId@H_404_21@ |
否@H_404_21@ |
xsltSystemId@H_404_21@ |
result@H_404_21@ |
用来存储转换后的结果对象@H_404_21@ |
java.xml.transform@H_404_21@ |
var@H_404_21@ |
以org.w3c.dom.Documet类型存储转换后的结果@H_404_21@ |
否@H_404_21@ |
scope@H_404_21@ |
否@H_404_21@ |
String@H_404_21@ |
否@H_404_21@ |
无@H_404_21@ |
该标签用来为<x:transform>标签转换参数。@H_404_21@
<x:param name=”name” value=”value”/>@H_404_21@
<x:param name=”name” value=”value”@H_404_21@
Value@H_404_21@
</x:param>@H_404_21@
(2)value指定参数值。@H_404_21@