具有任意属性的HTML文件的限制

时间:2016-08-31 15:44:37

标签: java xml xpath jsoup

我有一个HTML文件。此文件中的某些元素标有特殊属性:Say level0 =“level0 name”,level1 =“level 1name”,level2 =“name”。

如何检查此属性是否具有所需的结构?

一个。级别必须嵌套为索引

湾同一“级别”级别的名称应该是不同的

℃。 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>

1 个答案:

答案 0 :(得分:1)

您应该创建一个XSD,然后使用像Xerces这样的东西来验证结构。

请参阅What's the best way to validate an XML file against an XSD file?以获得一个好例子。