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