这是我正在使用的示例xml:
<data>
<menu>
<date>2017-11-08</date>
<type>S</type>
<name>onion soup</name>
</menu>
<menu>
<date>2017-11-08</date>
<type>L</type>
<name>ham sandwich</name>
</menu>
<menu>
<date>2017-11-09</date>
<type>S</type>
<name>pumpkin soup</name>
</menu>
<menu>
<date>2017-11-09</date>
<type>L</type>
<name>cheese sandwich</name>
</menu>
<menu>
<date>2017-11-10</date>
<type>S</type>
<name>sweet potato soup</name>
</menu>
<menu>
<date>2017-11-10</date>
<type>L</type>
<name>chicken sandwich</name>
</menu>
</data>xml每天都在动态变化,所以它总是从当天的菜单开始。
我正在寻找一个总是显示‘明天的汤’的行,所以今天(8号)应该给我一个值“南瓜汤”,9号它将显示“红薯汤”,10号它将显示新汤的值,当它改变时将出现在xml中。
是否有一行代码将显示xml提要中第二个值为"S“的"type”的同级?
谢谢你的帮助。
编辑:
我试过了:
/data/menu/name[../type/text() = "S"] or /data/menu[type[text()='S']]/name它本应显示所有这些内容,但在我正在使用的软件中,它显示了第一个汤。但我不知道如何展示第二个。
Edit2:
(/data/menu[type='S'])[2]/following-sibling::menu[1]/name谢谢,但这实际上给了我明天的午餐名称,而不是汤的名称
Edit3:
这实际上使我找到了一个解决方案,这可能不是最优雅的方式,但我认为它应该能做到这一点(我不知道我可以使用这样的双括号,所以谢谢!)
(/data/menu[type='S'])[2]/name发布于 2017-11-08 22:18:04
值为"S“的第二个"type”之后的下一个菜单项的名称
(/data/menu[type='S'])[2]/following-sibling::menu[1]/namehttps://stackoverflow.com/questions/47180819
复制相似问题