1

不知道如何标记这个问题。我有一个由 LaTeXMLpost 转换的 XHTML 文档数据库;但是,说他们有验证问题是轻描淡写的。我需要在浏览器中显示它们。但是,由于无效标记而导致的标签自动关闭会打乱我的结构。

一个最小的例子:

<!doctype html>
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <div id="content" style="background-color:pink">
      <!-- yield -->

      <section >
        <ul>
          <li>
            <div>
              <p>
                First
                <li>
                  <div>
                    <p>
                      Second
                    </p>
                  </div>
                </li>
              </p>
            </div>
          </li>
        </ul>
      </section>
      <section>
        Next
      </section>

      <!-- end yield -->
    </div><!-- end content -->
  </body>
</html>

jsfiddle

评论之外的一切都是布局;它里面是加载的文档。如果从表面上看,一切都应该是粉红色的,对吧?

问题是,“Next”在#content. 即使它是有效的 XML,它也不符合 HTML/XHTML DTD(或 HTML5 中的任何 DTD 传递),因此它被破坏了。

问题是:如何保护我的布局免受其中无效标记的影响?我可以对内容做些什么来使其正常化吗?我在显示之前将其加载到 Nokogiri 中,但无论如何我仍然会陷入这种混乱(因为 XML 没有格式错误,我想,Nokogiri 对此没有做任何事情)。

我不在乎它是否显示得很好,我现在只关心它是否安全地被包含(否则我在操作它、附加事件、样式以及几乎所有其他东西时都会遇到麻烦)。

4

1 回答 1

0

你可以试试 Nokogiri,它有一些修复无效标记的内置功能。

相关问题:Repairing invalid HTML with Nokogiri (removing invalid tags)

于 2013-03-04T12:54:25.490 回答