<table>
<tr>
<td rowspan="2">
NodeData
</td>
<td>NodeData</td>
<td>
NodeData
</td>
<td>NodeData</td>
<td>
NodeData
</td>
<td>
NodeData
</td>
<td>
NodeData
</td>
</tr>
<tr>
<td>NodeData</td>
<td>
NodeData
</td>
<td>NodeData</td>
<td>
NodeData
</td>
<td>
NodeData
</td>
<td>
NodeData
</td>
</tr>
</table>
然而,它(在某些情况下)也可以是垂直的:
<table>
<tr>
<td colspan="8">
NodeData
</td>
</tr>
<tr>
<td>
NodeData
</td>
<td>
NodeData
</td>
<td>
NodeData
</td>
<td>
NodeData
</td>
<td>
NodeData
</td>
<td>NodeData</td>
<td>NodeData</td>
<td>NodeData</td>
</tr>
<tr>
<td>
NodeData
</td>
<td>
NodeData
</td>
<td>
NodeData
</td>
<td ">
NodeData
</td>
<td>
NodeData
</td>
<td>
NodeData
</td>
<td>
NodeData
</td>
<td>
NodeData
</td>
</tr>
</table>
现在我想把这些表变成树状结构,因为它们总是从单个元素分支出来。实现这一目标最简单的方法是什么?我设法想出的就是创建一个二维数组(表格表示)并迭代它,检查相邻节点中的colspan,但肯定有更好的方法吗?
答案 0 :(得分:0)
您可以在此模式下阅读html代码,如xml
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(yourHtmlString));
Document doc = builder.parse(is);
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("table");
if (nodeList.getLength() != 1)
return null;
Node node = nodeList.item(0);
Element element = (Element) node;
NodeList nl = element.getElementsByTagName("tr");
...
我希望我能正确理解你的问题