我正在构建一个HTML Gui构建器,这涉及将HTML页面从浏览器往返于服务器并再次返回。
在后端,我有一个xml解析器,它需要格式良好的标签。
我通过编写格式良好的HTML开始 - 例如:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<link rel="stylesheet" type="text/css" href="/some/path/to/some.css" />
</head>
浏览器决定它最了解并将其转换为:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15">
<link rel="stylesheet" type="text/css" href="/some/path/to/some.css">
</head>
第二个计划是强制使用单独的结束标记:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15"></meta>
<link rel="stylesheet" type="text/css" href="/some/path/to/some.css"></link>
</head>
这也不起作用。
最初的计划是剪切文档部分的副本,然后使用新页面将它们循环回服务器。似乎我唯一的选择是手动浏览所有标签(这个例子中有更多标签)并在我往返之前修复它们。
我错过了什么吗?如何让浏览器使HTML表现良好?
答案 0 :(得分:3)
这是不格式正确的HTML;它是XML或XHTML:
&lt; link rel =“stylesheet”type =“text / css”href =“/ some / path / to / some.css”/&gt;
这里解释了混淆:http://www.cs.tut.fi/~jkorpela/html/empty.html
innerHTML
就是这样 - HTML。您可以从DOM生成XML - 在这里尝试作为开始:http://www.devarticles.com/c/a/JavaScript/More-on-JavaScript-and-XML/
答案 1 :(得分:0)
基本问题是HTML没有良好的概念。
我假设你正在使用innerHTML(它获取DOM的序列化)来阅读HTML,并且遇到了Internet Explorer的问题。
IE不支持XHTML,它的内部表示是基于HTML的。 XHTML中形成的是HTML中的错误,因此结果并非完全出乎意料。
我建议在服务器上预处理数据(例如使用tidylib)将其从HTML转换为XHTML。