【发布时间】:2016-08-31 15:44:37
【问题描述】:
我有一个 HTML 文件。此文件中的某些元素标有特殊属性:例如 level0="level0 name"、level1="level 1name"、level2="name"。
如何检查此属性是否具有所需的结构?
一个。级别必须嵌套作为它们的索引
b.同一“级别”上的级别名称应该不同
c。 level0 必须至少有一个与 level1 的元素
d。一个 HTML 元素可能只有一个级别属性
更新 1:c.属性为“level0”的html元素必须至少有一个属性为“level1”的降序html元素
更新 2:错误消息易于理解且简单,这一点非常重要。
为了解析 HTML,我使用的是 JSoup,但到目前为止我还处于开放状态。我可以想象使用 XSD-Schema 或 XPath。或者它在Java中的一些组合。我希望向用户显示简单合理的错误消息。
<body>
<div level0="lvl0-0">
<div>
...
<span level1="lvl1-0">
<p level2="lvl2-0"> text goes here </p>
<p level2="lvl2-1"> textY goes here </p>
</span>
<span level1="lvl1-1">
<p level2="lvl2-0"> text goes here </p>
</span>
...
<div>
<div>
<div class="bla">
<div level0="lvl0-1">
<span level1="lvl1-0">
<p level2="lvl2-0"> text goes here </p>
</span>
<div>
</div>
</body>
【问题讨论】:
-
用 jsoup 实现这一点应该不是问题。我建议首先设计测试用例,这样您就可以验证解析器/验证器的行为(一种测试驱动的开发)。您在使用 jsoup 时遇到了哪些问题?