2012-04-02 125 views
0

是否有关于如何解析HTML注释一个很好的参考稳健特别 在HTML中包含的JavaScript可能打破评论解析HTML注释正确

例如:

  <!-- 
     <script type="text/javascript"> 
     for(var i = 10; i > 0; i--) { 
         if(myar[i].status > 3) { 
            ntlp++; 
         } 
     } 
     </script> 
     --> 

两负的和在脚本中大于3可被认为是 被解释为' - >'的连接(如果您正确地遵循html/sgml规范 )。

无论如何,是否有一个规则/陷阱清单来处理所有这一切?在C中会更好一些,否则伪代码也很好。

感谢

Ashod

+0

是,*使用HTML解析器* :)请参阅解析规则的HTML规范。 – 2012-04-02 04:44:56

回答

1

如果满足代码<!--,一切都再是直到-->评论。还需要其他什么规则?

+0

这是不正确的。规则是: <!开始标记 - 第一次出现双重短划线意味着将下一个'>'作为注释的一部分 - 下一次双短划线发生意味着下一个'>'关闭标记 保持交替规则为双重短划线 – 2012-04-02 04:44:16

+1

@ AshodApakian谁告诉过你的? – iehrlich 2012-04-02 04:47:36

+0

我不相信这是真的。例如,我非常确定'<! - '*不能*在CDATA块(例如'脚本')内启动HTML注释。因此,我认为' - >'也可以*保护*。 (因此它被*用作Netscape 3.0版中的黑客攻击等)。无论如何,引用HTML *规范*会使(或破坏)这个答案。 – 2012-04-02 05:15:36