如何使用xpath从前一个节点获取文本

时间:2014-04-05 13:24:35

标签: xslt xpath

我是一名经验丰富的开发人员,但我是xpath和xslt的新手,我的公司突然决定实施这项工作,我希望有人可以帮助我应对挑战。

如果我有这样的XML .....

<tr layoutcode="" type="categoryhead" level="2"
   <td colname="caption">Alex</td>     (a)
</tr>
<tr layoutcode="" type="categoryhead" level="3"
   <td colname="caption">Miscellaneous</td>
</tr>
<tr layoutcode="" type="detail" level="4"
   <td colname="caption">Something</td>
</tr>
<tr layoutcode="" type="detail" level="4"
   <td colname="caption">This is a test</td>   (b)
</tr>

...我正在进行这项测试&#39;节点(b),我如何从(a)获得文本,即&#39; Alex&#39;?

我所知道的是,我正在寻找前面的第一个&#39; tr&#39;属性为&#39; type&#39;的节点=&#39; categoryhead&#39;和&#39;级别&#39; = 2,然后我想要来自其'td&#39;子节点。我想我正在寻找正确的xpath查询,所以我可以将它分配给变量。

非常感谢, 亚历

1 个答案:

答案 0 :(得分:2)

路径../preceding-sibling::tr[@type = 'categoryhead' and @level = 2][1]/td[@colname = 'caption']应选择td元素。