我有一个 HTML 文件。该文件中的某些元素标有特殊属性:level0=“level0 name”、level1=“level 1name”、level2=“name”。
如何检查该属性是否具有所需的结构?
a.级别必须嵌套作为其索引
b.同一“级别”上的级别名称应该不同
c. level0 必须至少有一个与 level1 相同的元素
d.一个 HTML 元素可能只有一个 level 属性
更新 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>
最佳答案
您应该创建一个 XSD,然后使用 Xerces 之类的工具来验证结构。
参见What's the best way to validate an XML file against an XSD file?举一个很好的例子。
关于java - 对具有任意属性的 HTML 文件的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39253894/