我有以下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"
。
答案 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()