2015-10-28 60 views
1

這是我的代碼:「XML解析錯誤:沒有很好地形成」在斐波那契數生成

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>Lab 5A : Fibbonacci numbers using Javascript</title> 
</head> 
<body> 
<h1>Fibonacci Number Generation</h1> 
<h2>Using Javascript</h2> 
<hr /> 
<script type="text/javascript"> 

var n = prompt("Enter the number of terms : ", "") ; 
var fib0 = 0, fib1 = 1; 
var i; 
var tmp ; 
for (i=2; i<=n; i++) 
{ 
var tmp = fib0; 
fib0 = fib1; 
fib1 = tmp + fib1; 
} 
document.write(n > 0 ? fib1 : 0); 

</script> 
</body> 
</html> 

我收到以下錯誤:

XML Parsing Error: not well-formed Location: file:///C:/Users/s13rw81/Desktop/Lab%20Programs/IWT%20Lab/Lab5A.xhtml 
Line Number 17, Column 16: 
//for (i=2; i<=n; i++) 
---------------^ 
+2

爲什麼你在這個年齡段使用xhtml? – epascarello

+0

'n'是一個字符串,而不是數字 – charlietfl

+1

https://developer.mozilla.org/en/docs/Writing_JavaScript_for_XHTML – epascarello

回答

1

我必須epascarello這裏同意,但儘管如此:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta charset="utf-8"> 
<title>Lab 5A : Fibbonacci numbers using Javascript</title> 
</head> 
<body> 
<h1>Fibonacci Number Generation</h1> 
<h2>Using Javascript</h2> 
<hr /> 
<script type="text/javascript"> 
//<![CDATA[ 
var n = prompt("Enter the number of terms : ", "") ; 
n = parseInt(n); 
// check input here not in the document.write 
var fib0 = 0, fib1 = 1; 
var i; 
var tmp; 
for (i=2; i<=n; i++) { 
    tmp = fib0; 
    fib0 = fib1; 
    fib1 = tmp + fib1; 
} 
alert(fib1); 
//]]> 
</script> 
</body> 
</html> 

問題是括號中的JavaScript小於字符,但開頭字符爲HTML元素。您可以將整個腳本放入CDATA括號中,以避免每次發生<。請按照Xufox的鏈接瞭解更多信息。

+0

也很好的展示html5的選擇。你沒有解釋爲什麼你同意 – charlietfl

+0

我同意他在這幾天使用XHTML的想法。但是我也知道老教師,遺留代碼,尖頭老闆等等。如果我正確理解這裏的規則,那麼在HTML-5中做這件事是遠遠不夠的,所以請問一個新的問題。 – deamentiaemundi

+0

@deamentiaemundi這段代碼雖然工作但並不完美。你錯過了關閉meta標籤。我也應該生成n個術語,所以當我試圖修改此代碼時,我注意到警報(fib1)在輸入5的條件時警告5,如果用document.write替換警報,它不會打印任何內容。 :(括號中的問題已經解決了,謝謝 –