JSTL XML标签库 使用

转载:http://blog.csdn.net/peditable/article/details/7756996
JSTL XML processing 标签库:为程序设计者提供了基本的对 XML 格式文件的操作
被分为了三类,分别是: 
    XML 核心标签: <x:parse> 、 <x:out> 、 <x:set> 
    XML 流控制标签: <x:if> 、 <x:choose> 、 <x:when> 、 <x:otherwise> 、 <x:forEach> 
    XML 转换标签: <x:transform> 、 <x:param> 

1.<x:parse> 标签:解析 XML 文件
属性描述 
doc:源 XML 的内容,该属性的内容应该为String类型或者java.io.Reader的实例,可以用xml属性来替代,但是不推荐 
var:将解析后的XML保存在该属性所指定的变量中,之后XML processing标签库中的其他标签若要取XML中的内容就可以从该变量中得到(可选) 
scope:变量的作用范围(可选) 
varDom:指定保存的变量为 org.w3c.dom.Document 接口类型(可选) 
scopeDom:org.w3c.dom.Document 的接口类型变量作用范围(可选) 
systemId:定义一个URI,该URI将被使用到XML文件中以接入其他资源文件(可选) 
filter:该属性必须为 org.xml.sax.XMLFilter 类的一个实例,可以使用EL表达式传入,将对 XML 文件做过滤得到自身需要的部分(可选) 
其中,var、scope和varDom、scopeDom不应该同时出现,而应该被视为两个版本来使用,二者的变量都可以被 XML processing 标签库的其他标签来使用
如:导入本地的xml文件并用<x:parse> 标签进行解析
    <x:parse var="sampleXML">
        <c:import url="/sample.xml" />
    </x:parse>

2.<x:out> 标签
属性描述
select:XPath语句
escapeXml:是否转换特殊字符,默认为true
如,输出下面xml文件中name的值:
    <x:parse var="sampleXML">
        <goods>
            <item id="1">
                <name>b</name>
                <price>40</price>
            </item>
        </goods>
    </x:parse>
    <x:out select="$sampleXML/goods/item/name"/>

3.<x:set>标签
属性描述
select:XPath语句
var:将从XML文件中取得的内容存储到varName中
scope:变量范围
如,取出item节点,再用<x:out> 标签输出它的子节点的值:
    <x:set select="$sampleXML//item" var="item"/>
    <x:out select="$item/name" />

4.<x:if>标签
属性描述
select:XPath语句,如果为true,则执行<x:if>中的内容
var:将从XML文件中取得的内容存储到varName中
scope:变量范围
如:当存在item的id属性为1的节点时输出right!
    <x:if select="$sampleXML/goods/item[@id=1]/name">
        right!
    </x:if>

5.<x:choose>、<x:when>和<x:otherwise>标签
与core标签的内容一样,只是<x:when>使用的XPath语句,其他两个都没有属性
如:当存在item的id属性为1的节点时输出right!,否则输出wrong
    <x:choose>
        <x:when select="$sampleXML/goods/item[@id=1]/name">
            right!
        </x:when>
        <x:otherwise>
            wrong!
        </x:otherwise>
    </x:choose>

6.<x:foreach>标签,与<c:forEach>相似
属性描述
var:设定变量存储到现在浏览到的节点
select:XPath语句,决定被浏览的部分
varStatus:存放现在指导的相关成员信息
begin:开始位置
end:结束位置
step:每次迭代的间隔数
如:输出所有item的name属性
    <x:parse var="sampleXML">
        <goods>
            <item id="1">
                <name>a</name>
                <price>10</price>
            </item>
            <item id="2">
                <name>b</name>
                <price>20</price>
            </item>
        </goods>
    </x:parse>
    
    <x:forEach select="$sampleXML//item">
        <x:out select="name" />
    </x:forEach>

7.<x:transform>标签:使用XSLT重新包装XML文件
属性描述
doc:XML文件
xslt:要套用的XSLT样式
docSystemId:XML文件的URI
result:转换结果的对象
xsltSystemId:XSLT文件的URI
var:存放转换后的文件
scope:var变量的范围
xml:
xmlSystemId:
如:
    <c:import var="xmlDoc" url="${xmlUrl}" />
    <c:import var="xsltStyleSheet" url="${xsltUrl}" />
    <x:transform doc="${xmlDoc}" xslt="${xsltStyleSheet}">

8.<x:param>标签:用来设置<x:transform>的参数
属性描述
name:参数名称
value:参数值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值