我想从父节点获取所有子节点,其中包含其中一个文本。换句话说:我开始搜索某个子节点,我确定包含了我需要的一些字符串。一旦我找到了它,而不是从匹配相同Xpath表达式的节点获取所有其他字符串,我需要将其他节点放在同一级别上。我正在使用Java。 例如:
<table width="575" border="0" cellspacing="1" cellpadding="0">
<tr>
<td width="39" class="back1"><b class="texto4">CRN</b></td>
<td width="60" class="back1"><b class="texto4">Materia</b></td>
<td width="53" class="back1"><b class="texto4">Sección</b></td>
<td width="55" class="back1"><b class="texto4">Créditos</b></td>
<td width="156" class="back1"><b class="texto4">Título</b></td>
<td width="69" class="back1"><b class="texto4">Cupo</b></td>
<td width="57" class="back1"><b class="texto4">Inscritos</b></td>
<td width="77" class="back1"><b class="texto4">Disponible</b></td>
</tr>
<tr>
<td width="39"><font class="texto4">
10110 </font></td>
<td width="60"><font class="texto4">
IIND1000 </font></td>
<td width="53"><font class="texto4">
<div align="center">
1 </div></font></td>
<td width="55"><font class="texto4">
<div align="center">
3 </div>
</font></td>
<td width="156"><font class="texto4">
INTROD. INGEN. INDUSTRIAL </font></td>
<td width="69"><font class="texto4">
100 </font></td>
<td width="57"><font class="texto4">
100 </font></td>
<td width="77"><font class="texto4">
0 </font></td>
</tr>
</table>
如果我寻找IIND1000,我想获得该tr标签中的每个td元素(10110,IIND1000,1,3,INTROD.INGEN.INDUSTRY,100,100,0)。 这可能与Jtidy一起吗?任何提示或建议?感谢。
答案 0 :(得分:1)
你可能想要这个:
XPathExpression expr =
xpath.compile("//tr[td[normalize-space(font) = 'IIND1000']]/td/font/text()");
括号中的条件检查是否存在具有所需条件的孙子节点,并且仅输出匹配的<tr>
的所有孙子节点。