我很难弄清楚为什么HXT要替换我的DTD。首先,下面是我要分析的输入文件:
<!DOCTYPE html>
<html>
<head>
<title>foo</title>
</head>
<body>
<h1>foo</h1>
</body>
</html>这就是我得到的输出:
<?xml version="1.0" encoding="US-ASCII"?>
<html>
<head>
<title>foo</title>
</head>
<body>
<h1>foo</h1>
</body>
</html>最后,下面是我使用的箭头的简化版本:
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 no、withValidate no等等。我收到警告说,HXT忽略了我的doctype声明,但这是我唯一的洞察力。有人能帮我一下吗?提前谢谢你!
发布于 2014-11-05 19:02:35
你有两个问题
HXT只接受以下三种html文档类型之一
<!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添加以下选项
withAddDefaultDTD yeshttps://stackoverflow.com/questions/26763855
复制相似问题