-1

我有以下 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>

我必须返回in低于of<descrizione><temp>的文本。<luogo> "Bologna"<periodo t="mattino"><temp><luogo> "Firenze"

4

1 回答 1

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()
于 2013-07-21T19:13:17.633 回答