用Java为HTML创建地图
我正在使用以下HTML:
<table class="detailTable">
<tbody>
<tr>
<td class="detailTitle" align="top">
<h3>Credit Limit:</h3>
<h3>Current Balance:</h3>
<h3>Pending Balance:</h3>
<h3>Available Credit:</h3>
</td>
<td align="top">
<p>$677.77</p>
<p>$7.77</p>
<p>$7.77</p>
<p>$677.77</p>
</td>
<td class="detailTitle">
<h3>Last Statement Date:</h3>
<h4>Payment Address</h4>
</td>
<td>
<p> 05/19/2015 </p>
<p class="attribution">
</td>
</tr>
</tbody>
</table>
我需要用Java创建一个映射,它检查某个像<h3>
一样的Credit Limit
的位置,然后使用该位置从相应的<p>
获取它的值。棘手的部分是——HTML内容是动态的。因此,它可能会出现不同的结果,地图应该仍然有效。例如:
<table class="detailTable">
<tbody>
<tr>
<td class="detailTitle" align="top">
<h3>Current Balance:</h3>
<h3>Pending Balance:</h3>
<h3>Available Credit:</h3>
</td>
<td align="top">
<p>$7.77</p>
<p>$7.77</p>
<p>$677.77</p>
</td>
<td class="detailTitle">
<h3>Last Statement Date:</h3>
<h3>Credit Limit</h3>
<h4>Payment Address</h4>
</td>
<td>
<p> 05/19/2015 </p>
<p>$677.77</p>
<p class="attribution">
</td>
</tr>
</tbody>
</table>
有人知道怎么做吗?真的很难创建地图,可以处理更改HTML内容。非常感谢您的指导或帮助:)
注意:我不能使用XPath2.0或position()等函数。因此,我需要一些解决方法来实现这一点
# 1 楼答案
如果需要访问XML内容,可以使用SAX或DOM解析器遍历它。我更喜欢SAX解析器,因为它速度快,可以为检测到的元素和内容定义回调。在这个回调中,您可以为以后的比较构建所需的任何映射
在早期的项目中,我使用ApacheXerces解决类似的问题。你应该很容易找到如何使用它的例子