首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HXT忽略HTML,代之以XML

HXT忽略HTML,代之以XML
EN

Stack Overflow用户
提问于 2014-11-05 17:53:44
回答 1查看 92关注 0票数 5

我很难弄清楚为什么HXT要替换我的DTD。首先,下面是我要分析的输入文件:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
  <head>
    <title>foo</title>
  </head>
  <body>
    <h1>foo</h1>
  </body>
</html>

这就是我得到的输出:

代码语言:javascript
复制
<?xml version="1.0" encoding="US-ASCII"?>
<html>
  <head>
    <title>foo</title>
  </head>
  <body>
    <h1>foo</h1>
  </body>
</html>

最后,下面是我使用的箭头的简化版本:

代码语言:javascript
复制
start (App src dest) = runX $
                         readDocument [ withValidate no
                                      , withSubstDTDEntities no
                                      , withParseHTML yes
                                      --, withTagSoup
                                      ]
                                      src
                         >>>
                         this
                         >>>
                         writeDocument [ withIndent yes
                                       , withSubstDTDEntities no
                                       , withOutputHTML
                                       --, withOutputEncoding "UTF-8"
                                       ]
                                       dest

我为这些评论道歉--我一直在玩弄不同的吐露组合。我似乎无法让HXT不去处理DTD,甚至是withSubstDTDEntities nowithValidate no等等。我收到警告说,HXT忽略了我的doctype声明,但这是我唯一的洞察力。有人能帮我一下吗?提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-05 19:02:35

你有两个问题

HXT只接受以下三种html文档类型之一

代码语言:javascript
复制
<!DOCTYPE html 
 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
 "DTD/xhtml1-strict.dtd">

<!DOCTYPE html
 PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "DTD/xhtml1-transitional.dtd">

<!DOCTYPE html
 PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
 "DTD/xhtml1-frameset.dtd">

使用其中之一将消除关于忽略dtd的警告。

第二,向writeDocument添加以下选项

代码语言:javascript
复制
withAddDefaultDTD yes
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26763855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档