当前位置: 首页 > 知识库问答 >
问题:

基于同级节点属性选择XML节点?

柯乐童
2023-03-14

如何能够基于另一个同级节点的属性选择节点属性?我想要实现的是从所有节点中提取链接(href值),这些节点后跟具有属性class=“body table news loss”的节点跨度,即选择器应该返回https://finance.yahoo.com/news/inspiremd-announces-planned-recapitalization-120000752.html在下面的示例中。我试过了

 "//tr[td/span[@class='body-table-news-loss']]/a/@href"

以及类似的变体,但我没有得到想要的结果,因为我不知道如何确切地向XPath选择器解释层次结构级别。非常感谢您的帮助。

<tr>
 <td>Nov-29-17 07:00AM&nbsp;&nbsp;
 </td>
    <td align="left">
      <a href="https://finance.yahoo.com/news/inspiremd-announces-planned-
      recapitalization-120000752.html">InspireMD Announces Planned 
      Recapitalization
      </a> 
      <span class="body-table-news-loss">-51.29%</span>
    </td>
</tr>
<tr>
 <td >Nov-07-17 04:05PM&nbsp;&nbsp;
 </td>
    <td align="left">
      <a href="https://finance.yahoo.com/news/inspiremd-announces-third-
      quarter-2017-210500523.html">InspireMD Announces Third Quarter 2017 
      Results; CGuard(TM) Revenue Increases 90% Versus Same Period Last Year
      </a> 
      <span class="body-table-news-gain">+5.94%</span>
    </td>
</tr>

共有2个答案

耿建弼
2023-03-14

这同样有效:

//td[span[@class='body-table-news-loss']]/a/@href
田嘉慕
2023-03-14

您正在查找前面的兄弟轴::轴。它选择它之前的上下文的所有同级节点。

像这样的东西应该有用。

//tr/td/span[@class='body-table-news-loss']/preceding-sibling::a/data(@href)
 类似资料:
  • 我有一个像这样的xml结构 我需要选择ClassX节点,并在包含constname1(即variable1)AttAttribute的值中 这起作用了。但是,我需要做如下操作,而不是在循环中混合文本 这是我不对的 然而下面是正确的 但我希望将选择范围限制为classX的节点

  • 对于下面的XML,我正在尝试根据属性和节点值提取节点。 基于属性class=pass和h1包含('objectives'),我试图提取以下输出。 “目标”是节点值字符串“1任务目标”的一部分 1任务目标1目标2 下面是我正在尝试的XPath表达式。然而,这并没有产生任何输出。你能指出我做错了什么吗? 谢谢

  • SyntaxError:无效输入“h”:预期为“I/I”(第10行,第28列(偏移量:346))“merge(p:primaryconsumer),其中p.name=svc.name” 我100%确信这些名称是唯一的,并且将与现有节点集中的唯一使用者名称相匹配(有待观察)。 当唯一节点属性匹配时,如何将现有属性添加到新数据中?(我希望获得唯一的ID,但我必须能够在匹配上执行新数据的更新)

  • 我很难使用下面的用例。 以下是XML: 我想要实现的是基于节点

  • 从xml中,我需要获得每个节点的名称和面积。 我知道示例xpath,比如,

  • 问题内容: 我正在尝试读取xml文件,例如: 这是我到目前为止的代码: 这是我尝试编写此代码的尝试,怎么说都不成功,这就是我开始赏金的原因。这是http://pastebin.com/huKP4KED。 赏金更新: 我确实真的尝试了好几天,但现在没想到会这么难,我会接受有用的链接/书籍/教程,但更喜欢代码,因为我昨天需要这样做。 这是我需要的: 关于上面的xml: 我需要获取标题ID的值 temp