2
據我瞭解,你需要包括你的HTML文件的頂部下面的代碼,以確保他們正確分析:如何在由XSL生成的文件中包含正確的XML/HTML定義?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
...
我通過轉換XML文件生成一個HTML文件一個XSL文件。這將使用MSXML工具完成,該工具將生成標準HTML文件作爲輸出。
如果我只是這樣做:
<xsl:template match="/">
<html>
...
一切都很好。但是,如果我這樣做:
<xsl:template match="/">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
...
我得到的錯誤XML Parsing Error: XML or text declaration not at start of entity
在Firefox或IE中Cannot have a DOCTYPE declaration outside of a prolog.
。大概這是因爲解析器找到兩個<?xml
的定義並且感到困惑。
如何讓瀏覽器a)明白我正在使用適當的嚴格HTML,並且b)確保將這些聲明放入MSXML生成的HTML輸出文件中?
我認爲這在我通過瀏覽器中的XSL查看XML時有效,但在運行MSXML「從這些XML和XSL文件生成HTML」工具時不起作用。 :( – Colen 2010-06-16 17:08:08
@Colen:不,xsl:output是標準的一部分,它應該「正常工作」 – 2010-06-16 17:11:05
如果沒有,請使用符合標準的XSLT處理器 – 2010-06-16 17:11:55