2010-11-08 64 views
1

我無法將JavaScript作爲CDATA添加到.xml文件。那可能嗎?我開始從:讓JavaScript執行.xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
<head> 
<title>XHTML 5 Example</title> 
<script type="application/javascript"> 
<![CDATA[ 
function loadpdf() { 
    document.getElementById("pdf-object").src="http://www.w3.org/TR/xhtml1/xhtml1.pdf"; 
} 
]]> 
</script> 
</head> 
<body onload="loadpdf()"> 
<p>This is an example of an 
<abbr title="Extensible HyperText Markup Language">XHTML</abbr> 1.0 Strict document.<br/> 
<img id="validation-icon" 
    src="http://www.w3.org/Icons/valid-xhtml10" 
    alt="Valid XHTML 1.0 Strict"/><br/> 
<object id="pdf-object" 
    type="application/pdf" 
    data="http://www.w3.org/TR/xhtml1/xhtml1.pdf" 
    width="100" 
    height="500"/> 
</p> 
</body> 
</html> 

example#2(I改變寬度值傳遞W3C驗證)

可以將該文件保存爲合式.xml文件,應的JavaScript執行若有?

回答

1

當在XHTML中放置JavaScript script標記或CSS style標記時,最好將它放置在<![CDATA[ ]]>標記中。但是,它將被瀏覽器視爲腳本的一部分。爲了防止這部分腳本從執行,只需註釋掉你<![CDATA[]]>標籤:

<script type="text/javascript"> 
/* <![CDATA[ */ 

/* ]]> */ 
</script> 

OR

<style type="text/css"> 
/* <![CDATA[ */ 

/* ]]> */ 
</style> 

這將允許您使用XML特殊字符,而無需對其進行編碼,並且將允許您的腳本正確執行而不會出錯。此外,如果解析出白色空間,多行註釋是一個不錯的選擇。

編輯補充:

我相信object元素應該有一個關閉標籤(儘管是空的)相似,你應該如何指定外部源時,關閉標籤添加到script標籤。 我還沒有能夠驗證此爲。對於XHTML,建議的文件擴展名仍然是.html,但是您可以使用任何文件擴展名(甚至.pdf)保存文件。僅僅因爲您將其標記爲不同的文件擴展名並不意味着該內容對於該擴展名必定是有效的,並不意味着應用程序將能夠讀取該文件。

將XHTML另存爲.xml文件是完全合法的,如果XHTML格式正確,則它可以被任何可以解析XML的應用程序完全解析。如果Web瀏覽器打開一個XML文件,它可能會將內容顯示爲XML樹。如果你想在網絡瀏覽器來閱讀它作爲一個網頁,你應該將其保存爲這種格式(.html)

謹慎一句:空格和換行符在XML文本節點保存。如果使用XML解析器解析頁面,並且爲了便於閱讀目的而縮進,解析器將在輸出中包含換行符和換行符。

<div> 
    <span> 
    Some text 
    on multiple 
    lines 
    </span> 
    <span> 
    Some text 
    on multiple 
    lines 
    </span> 
</div> 

跨度的內容將主要是:"\n  Some text\n  on multiple\n  lines\n"

解決的辦法就是終止角度支架延伸到文本節點的開頭:

<div 
    ><span>Some text on one line</span 
    ><span>Some text on one line</span 
></div> 

這工作,因爲元素內額外的空白被忽略。

+0

如何將xhtml保存在文件foo.xml而不是foo.xhtml或foo.html中? – Thufir 2010-11-08 18:02:19

+0

標籤只是讓你對你的內聯腳本懶惰。你可以用你想要的任何文件擴展名來標記你的文本文件,但是它們將被基於它接收的MIME類型的網絡瀏覽器不同地解析。 「.xml」將默認顯示爲XML文檔,而不是大多數瀏覽器中的網頁。 – zzzzBov 2010-11-08 19:24:02