2015-10-28 4 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 этот код работал, но не безупречно. вы пропустили закрытие метатега. также я должен генерировать n терминов, поэтому, когда я попытался изменить этот код, я заметил, что предупреждение (fib1) предупреждает 5 при вводе числа терминов как 5, если вы замените предупреждение на document.write, оно ничего не печатает. :(проблема с скобками была решена. спасибо –