在Notepad++中显示不匹配的HTML标签

10
在Notepad++中有一种方法可以突出显示不匹配的HTML标签吗?
例如,如果我有以下HTML...
<HTML>
<!--Server: <%=(java.net.InetAddress.getLocalHost()).getHostName()%>-->
<HEAD>
   <TITLE>Vital Stats</TITLE>
   <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
   <SCRIPT SRC="vital_stats.js" TYPE="text/javascript"></SCRIPT>
   <LINK REL="STYLESHEET" HREF="../main.css">
</HTML>

我希望能够以某种方式突出显示<HEAD>标签,以表明它没有相应的</HEAD>标签。
我也想看到任何没有相应开放标签的关闭标签被突出显示。
编辑
我已经知道Notepad++的特性,点击标签即可查看其相应的标签。我要突出任何在整个文档中都没有匹配的标签。 即使有某种实用程序/插件可以运行,为我列出任何未匹配标记的行号和名称也会很有帮助。

1
缩进所有内容,这会让它更加明显。但是你也可以安装其中一个验证插件。 - Ry-
我已经使用Notepad++几年了,但我还没有遇到过任何可以做到这一点的插件。Minitech-验证插件是一个好主意! - Matt K
@minitech - 在我的情况下,我正在修改我没有编写过的现有代码,其中大多数页面都存在极端的嵌套(在我当前正在工作的页面中有22个级别)。 我已经对此代码进行了缩进,以使其可读,并找到任何标记不匹配的位置。 此外,如果您列出“这些验证插件之一”,那将会更有帮助,因为我已经在搜索它们了... - Zack Macomber
1
@minitech - 我看到了一个“HTML标签”和“折叠缩进”的插件,但那不是我要找的。此外,我不想修改我的HTML(比如使用HTML Tidy) - 我只想看到不匹配的标签。 - Zack Macomber
@dhaupin - 我在发布这篇文章后就没有继续追求它了,所以不... - Zack Macomber
显示剩余2条评论
4个回答

4

2

对于我正在处理的大文件,我的解决方法是将该文件的副本重命名为file.java。然后将"/div"替换为},将"div"替换为{,以找到额外/丢失的div。


2

这里有一些需要注意的地方。点击标签后,你可以看到:

  1. 成对出现的标签会被高亮显示(紫色)。没有成对出现的标签则不会被高亮显示。

  2. 在边缘处还有一条红线,它指向闭合标签。如果没有闭合标签,则会发现它指向了无处。

下面是两张图片,第一张展示了正确的情况,第二张则是错误的情况。

(我使用的是 Windows 版本的 Notepad++ 5.9.5,并选择了 HTML 语言)

正确的情况

错误的情况


2
我知道它有高亮显示,这真的很好,但我正在处理包含多达1000个div和span的大型HTML块。目前我正在手动检查它们,但小工具可以简化我的工作。 - Mike Keskinov

0

可能永远不会有这样的插件。原因是在有效代码中匹配标签(或块的开始和结束)是明确的,但在无效环境中,例如如果缺少匹配标签,则没有“伴侣”的标签(及其位置)是模棱两可的。例如,如果您有以下结构:

<div>
     <div>
          Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
          <div>
            Quisque auctor ligula vitae magna egestas
        </div>
     Sed vulputate nunc eu vehicula vestibulum. 
  </div>

很难说哪个div是未关闭的,哪些代码真正属于哪个块。npp中默认的标签高亮器只假设最近关闭的标签属于最后打开的标签。但这只是一个猜测,并且需要手动检查块是否正确,然后折叠它以检查下一个外部块,直到找到合并的块。因此,唯一真正的度量标准是计算打开和关闭的标签数量,以提示是否存在不匹配的标签,而不是假设可能错误的“解决方案”。这里有一个非npp的解决方案使用正则表达式。您可以使用AnalysePlugin进行此操作,或使用内置的搜索/计数功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接