首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有特定值的第二个节点的同级节点

具有特定值的第二个节点的同级节点
EN

Stack Overflow用户
提问于 2017-11-08 21:20:54
回答 1查看 31关注 0票数 0

这是我正在使用的示例xml:

代码语言:javascript
复制
<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”的同级?

谢谢你的帮助。

编辑:

我试过了:

代码语言:javascript
复制
/data/menu/name[../type/text() = "S"] or /data/menu[type[text()='S']]/name

它本应显示所有这些内容,但在我正在使用的软件中,它显示了第一个汤。但我不知道如何展示第二个。

Edit2:

代码语言:javascript
复制
(/data/menu[type='S'])[2]/following-sibling::menu[1]/name

谢谢,但这实际上给了我明天的午餐名称,而不是汤的名称

Edit3:

这实际上使我找到了一个解决方案,这可能不是最优雅的方式,但我认为它应该能做到这一点(我不知道我可以使用这样的双括号,所以谢谢!)

代码语言:javascript
复制
(/data/menu[type='S'])[2]/name
EN

回答 1

Stack Overflow用户

发布于 2017-11-08 22:18:04

值为"S“的第二个"type”之后的下一个菜单项的名称

代码语言:javascript
复制
(/data/menu[type='S'])[2]/following-sibling::menu[1]/name
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47180819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档