xml - Xpath taking an element comparing others -


i have following xml , i'm not able create correct xpath expression:

<previsioni>     <previsione data="30/1/2011">         <luogo>             <nome>bologna</nome>             <periodo t="mattino">                 <temp>8</temp>                 <descrizione>giornata fredda 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 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> 

i have return text of <descrizione> when <temp> of <luogo> "bologna" in <periodo t="mattino"> lower <temp> of <luogo> "firenze".

a copy-pastable one-liner:

//luogo[nome='bologna']/periodo[@t='mattino' , (temp < ../../luogo[nome='firenze']/periodo[@t='mattino']/temp)]/descrizione/text() 

structured:

//luogo[nome='bologna']     /periodo         [             @t='mattino'             , (temp < ../../luogo[nome='firenze']/periodo[@t='mattino']/temp)         ]     /descrizione/text() 

commented:

select <luogo> elements <nome> child has text 'bologna', //luogo[nome='bologna']     <periodo> children,     /periodo         have         [             @t attribure equal 'mattino'             @t='mattino'             , <temp> child lower same <temp> in <luogo> "firenze"             , (temp < ../../luogo[nome='firenze']/periodo[@t='mattino']/temp)         ]     <descrizione> child's text     /descrizione/text() 

Comments

Popular posts from this blog

html5 - What is breaking my page when printing? -

c# - must be a non-abstract type with a public parameterless constructor in redis -

ajax - PHP/JSON Login script (Twitter style) not setting sessions -