Xpath采用比较其他的元素

时间:2013-07-21 18:46:47

标签: xml xpath

我有以下xml,我无法创建正确的XPath表达式:

<previsioni>
    <previsione data="30/1/2011">
        <luogo>
            <nome>Bologna</nome>
            <periodo t="mattino">
                <temp>8</temp>
                <descrizione>Giornata fredda a Bologna</descrizione>
            </periodo>
            <periodo t="sera">
                <temp>4</temp>
                <descrizione>Ancora più freddo in serata</descrizione>
            </periodo>
        </luogo>
        <luogo>
            <nome>Firenze</nome>
            <periodo t="mattino">
                <temp>10</temp>
                <descrizione>Giornata fredda e nuvolosa per Firenze.</descrizione>
            </periodo>
            <periodo t="sera">
                <temp>1</temp>
                <descrizione>Brusco abbassamento delle temperature in serata...</descrizione>
            </periodo>
        </luogo>
    </previsione>
    <previsione data="31/1/2011">
        <luogo>
            <nome>Bologna</nome>
            <periodo t="mattino">
                <temp>13</temp>
                <descrizione>Brusca impennata della temperatura</descrizione>
            </periodo>
            <periodo t="pomeriggio">
                <temp>16</temp>
                <descrizione>Va ancora meglio nel pomeriggio...</descrizione>
            </periodo>
        </luogo>
        <luogo>
            <nome>Firenze</nome>
            <periodo t="mattino">
                <temp>15</temp>
                <descrizione>Pioggia e temperature in rialzo a Firenze</descrizione>
            </periodo>
            <periodo t="pomeriggio">
                <temp>14</temp>
                <descrizione>Non cambia molto nel pomeriggio, ma dovrebbe smettere di piovere</descrizione>
            </periodo>
        </luogo>
    </previsione>
</previsioni>

<descrizione>中的<temp> <luogo> "Bologna"低于<periodo t="mattino"> <temp>时,我必须返回<luogo>的文字1}} "Firenze"

1 个答案:

答案 0 :(得分:1)

可复制的单行内容:

//luogo[nome='Bologna']/periodo[@t='mattino' and (temp < ../../luogo[nome='Firenze']/periodo[@t='mattino']/temp)]/descrizione/text()

结构:

//luogo[nome='Bologna']
    /periodo
        [
            @t='mattino'
            and (temp < ../../luogo[nome='Firenze']/periodo[@t='mattino']/temp)
        ]
    /descrizione/text()

评论:

SELECT ALL <luogo> ELEMENTS WITH A <nome> CHILD THAT HAS TEXT 'Bologna',
//luogo[nome='Bologna']
    THEIR <periodo> CHILDREN,
    /periodo
        THAT HAVE
        [
            A @t ATTRIBURE EQUAL TO 'mattino'
            @t='mattino'
            AND A <temp> CHILD WHICH IS LOWER THAN THE SAME <temp> IN <luogo> "Firenze"
            and (temp < ../../luogo[nome='Firenze']/periodo[@t='mattino']/temp)
        ]
    THEIR <descrizione> CHILD'S TEXT
    /descrizione/text()
相关问题