Узлы XPath идут после новой строки
Я пытаюсь получить текст узла для узлов, которые имеют центр выравнивания div: `
<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> `
Проблема в том, что JTidy не получает текст в этом дочернем узле, потому что (я предполагаю здесь) есть новая строка между<font class="texto4">
а также<div align="center">
, Выходные данные, когда я получаю каждый элемент под этим узлом внутри списка и печатаю его, пустые.
Мое XPathExpression до сих порexpr = xpath.compile("//td[@width='55']/font/div/text()");
(или ширина = '69 ', для другого узла).
Моя полная попытка кода:
String cod = "IIND2401";
String dep = cod.substring(0, 4);
System.out.println(dep);
try {
URL url = new URL("http://registroapps.uniandes.edu.co/scripts/adm_con_horario1_joomla.php?depto="+dep);
Tidy tidy = new Tidy();
tidy.setXHTML(true);
Document doc = tidy.parseDOM(url.openStream(), System.out);
// Use XPath to obtain whatever you want from the (X)HTML
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile("//td[@width='39']/font/text()");
NodeList crn = (NodeList)expr.evaluate(doc, XPathConstants.NODESET);
Затем я беру те коды, которые я получаю, помещаю их в список и печатаю их:
List<String> crns = new ArrayList<String>();
for (int i = 0; i < crn.getLength(); i++) {
crns.add(crn.item(i).getNodeValue());
}
System.out.println ( "КДЧ:"); System.out.println (КДЧ);
Результатом является длинный список идентификаторов для курсов в моем университете для факультета IIND. CRN: [10110, 16886, 12420, 12526, 12527, 12528, 13510, 15146, 12544, 12545, (...)] Я не могу изменить HTML-документ, я пытаюсь разобрать это на сайте моего университета , Любой совет? Спасибо, парни.