• JSTL XML标签库


    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:参数值

  • 相关阅读:
    Goland在go mod vendor模式下无法识别某些库
    国际教育游戏实证研究综述:2008年-2012年
    ES6之用let,const和用var来声明变量的区别
    集成spring boot + mysql + docker实战
    js sort方法根据数组中对象的某一个属性值进行排序(实用方法)
    小试牛刀之sort()排序的实现
    Redis字符串(STRING)中BIT相关命令
    koa,express,node 通用方法连接MySQL
    JavaScript预解释是一种毫无节操的机制
    [php]如何做到高并发优化
  • 原文地址:https://www.cnblogs.com/yangy608/p/2806724.html
Copyright © 2020-2023  润新知