banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Xem giúp mình đây là lỗi gì?  XML
  [Question]   Xem giúp mình đây là lỗi gì? 06/05/2007 11:27:35 (+0700) | #1 | 57428
[Avatar]
theson267
Member

[Minus]    0    [Plus]
Joined: 07/12/2006 13:13:03
Messages: 27
Location: Bắc Ninh
Offline
[Profile] [PM] [Email] [Yahoo!]
Mình có 3 file có chức năng đọc tin từ tập tin RSS.
khi chạy nó thông báo lỗi, các bạn xem giúp mình nhé:
file 1:
index.html
Code:
<html>
<head>
<script type="text/javascript" src="getrss.js"></script>
</head>
<body><form name="form1"> 
Select an RSS-Feed:
<select onChange="showRSS(this.value)">
<option value="Google" >Google News</option>
<option value="MSNBC">MSNBC News</option>
</select>
</form><p><div id="rssOutput">
<b>RSS Feed will be listed here.</b></div></p>
</body>
</html>

File 2: getrss.js
Code:
// JavaScript Document
var xmlHttpfunction showRSS(str)
 { 
 xmlHttp=GetXmlHttpObject()
 if (xmlHttp==null)
  {
  alert ("Browser does not support HTTP Request")
  return
  }
 var url="getrss.php"
 url=url+"?q="+str
 url=url+"&sid="+Math.random()
 xmlHttp.onreadystatechange=stateChanged 
 xmlHttp.open("GET",url,true)
 xmlHttp.send(null)
 }

function stateChanged() 
 { 
 if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  { 
  document.getElementById("rssOutput")
  .innerHTML=xmlHttp.responseText 
  } 
 }function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 // Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

file 3:
getrss.php
Code:
<?php
//get the q parameter from URL
$q=$_GET["q"];//find out which feed was selected
if($q=="Google")
 {
 $xml=("http://news.google.com/news?ned=us&topic=h&output=rss");
 }
elseif($q=="MSNBC")
 {
 $xml=("http://rss.msnbc.msn.com/id/3032091/device/rss/rss.xml");
 }$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);//get elements from "<channel>"
$channel=$xmlDoc->getElementsByTagName('channel')->item(0);
$channel_title = $channel->getElementsByTagName('title')
->item(0)->childNodes->item(0)->nodeValue;
$channel_link = $channel->getElementsByTagName('link')
->item(0)->childNodes->item(0)->nodeValue;
$channel_desc = $channel->getElementsByTagName('description')
->item(0)->childNodes->item(0)->nodeValue;//output elements from "<channel>"
echo("<p><a href='" . $channel_link
 . "'>" . $channel_title . "</a>");
echo("<br />");
echo($channel_desc . "</p>");//get and output "<item>" elements
$x=$xmlDoc->getElementsByTagName('item');
for ($i=0; $i<=2; $i++)
 {
 $item_title=$x->item($i)->getElementsByTagName('title')
 ->item(0)->childNodes->item(0)->nodeValue;
 $item_link=$x->item($i)->getElementsByTagName('link')
 ->item(0)->childNodes->item(0)->nodeValue;
 $item_desc=$x->item($i)->getElementsByTagName('description')
 ->item(0)->childNodes->item(0)->nodeValue; echo ("<p><a href='" . $item_link
 . "'>" . $item_title . "</a>");
 echo ("<br />");
 echo ($item_desc . "</p>");
 }
?>

rất mong các bạn giúp đỡ!
[Up] [Print Copy]
  [Question]   Xem giúp mình đây là lỗi gì? 07/05/2007 16:46:59 (+0700) | #2 | 57594
[Avatar]
LM
Moderator

Joined: 16/04/2002 09:27:22
Messages: 129
Offline
[Profile] [PM] [WWW] [Yahoo!]
Lỗi gì bạn?

Mình đoán là chỗ này
Code:
var xmlHttpfunction showRSS(str)
  {
  xmlHttp=GetXmlHttpObject()
  if (xmlHttp==null)
   {
   alert ("Browser does not support HTTP Request")
   return
   }
  var url="getrss.php"
  url=url+"?q="+str
  url=url+"&sid="+Math.random()
  xmlHttp.onreadystatechange=stateChanged
  xmlHttp.open("GET",url,true)
  xmlHttp.send(null)
  }


Bạn gọi hàm showRSS, thì chỗ đó phải là hàm showRSS, sao lại viết không thề hieu đó là gì: var xmlHttpfunction showRSS(str)

Thử lại xem
Code:
function showRSS(str)
  {
  xmlHttp=GetXmlHttpObject()
  if (xmlHttp==null)
   {
   alert ("Browser does not support HTTP Request")
   return
   }
  var url="getrss.php"
  url=url+"?q="+str
  url=url+"&sid="+Math.random()
  xmlHttp.onreadystatechange=stateChanged
  xmlHttp.open("GET",url,true)
  xmlHttp.send(null)
  }





[Up] [Print Copy]
  [Question]   Xem giúp mình đây là lỗi gì? 07/05/2007 22:21:14 (+0700) | #3 | 57624
[Avatar]
theson267
Member

[Minus]    0    [Plus]
Joined: 07/12/2006 13:13:03
Messages: 27
Location: Bắc Ninh
Offline
[Profile] [PM] [Email] [Yahoo!]
Cảm ơn bạn nhiều lắm!
Khi chạy nó báo thêm 1 lỗi nữa:
Parse error: parse error, unexpected T_OBJECT_OPERATOR in
[Up] [Print Copy]
  [Question]   Xem giúp mình đây là lỗi gì? 08/05/2007 00:25:57 (+0700) | #4 | 57655
[Avatar]
LM
Moderator

Joined: 16/04/2002 09:27:22
Messages: 129
Offline
[Profile] [PM] [WWW] [Yahoo!]
Cái này lỗi cú pháp JS, bạn đã fix được chưa?
[Up] [Print Copy]
  [Question]   Re: Xem giúp mình đây là lỗi gì? 08/05/2007 13:08:22 (+0700) | #5 | 57795
[Avatar]
theson267
Member

[Minus]    0    [Plus]
Joined: 07/12/2006 13:13:03
Messages: 27
Location: Bắc Ninh
Offline
[Profile] [PM] [Email] [Yahoo!]
uh! lỗi hôm trứoc bạn nói ở trang js mình khắc phục rồi! còn lỗi này nó bảo ở trong trang PHP, bạn có thể chạy và sửa giúp mình được không, mình rất cảm ơn!
[Up] [Print Copy]
  [Question]   Re: Xem giúp mình đây là lỗi gì? 10/05/2007 12:22:47 (+0700) | #6 | 58190
[Avatar]
nguyendoanducnha
Member

[Minus]    0    [Plus]
Joined: 10/05/2007 00:08:44
Messages: 2
Offline
[Profile] [PM]
Cái source lấy dữ liệu RSS của bạn hình như sai rùi, mình test thấy nó chả lấy được gì cả. hàm $xmlDoc->load($xml); hình như có vấn đề, một là nó không tìm thấy file (dường dẫn là $xml) hoặt là code của bạn sai smilie dám lém á smilie
mình tìm trên mạng đoạn code sau hi vọng bạn hỉu và làm theo ok
http://bmw.ws.utk.edu/xml/rss/examples/
phần: "A Simple Parser"
<?php
class NewsList{
var $parser;
var $record;
var $current_field='';
var $field_type;
var $ends_record;
var $records;

// This function creates the parser, tells what functions handle the
// beginning and end tags for each element, what function handles the
// character data between the tags

function NewsList($filename){
$this->parser=xml_parser_create();
xml_set_object($this->parser, &$this);
xml_set_element_handler($this->parser, 'start_element', 'end_element');
xml_set_character_data_handler($this->parser, 'cdata');

$this->field_type = array('title'=>1,
'description'=>1,
'link'=>1);
$this->ends_record=array('item'=>true);

// creates a linear array of the contents of the xml file we are parsing

$x=join("",file($filename));

xml_parse($this->parser,$x);
xml_parser_free($this->parser);
}


// function that processes the end tag of an element

function start_element($p, $element, &$attributes){
global $is_item;
$element = strtolower($element);
if ($element === 'item') {
$is_item = 'true';
}
if ($is_item == "true" ) {
if ($this->field_type[$element]!=0){
$this->current_field=$element;}
else{$this->current_field='';}}
}



// function that processes the end tag of an element

function end_element($p,$element){
$element = strtolower($element);
if ($this->ends_record[$element]){
$this->records[]=$this->record;
$this->record=array();}
$this->current_field='';}

// function that processes the character data

function cdata($p,$text){
if ($this->field_type[$this->current_field]===1){
$this->record[$this->current_field] .= $text;}}

// function to print output

function show_info()
{
foreach($this->records as $news) {
printf("<p>%s",$news['title']);
printf("<br>%s",$news['description']);
printf("<br><a href=%s>%s</a>",$news['link'],$news['link']);
}}}

$is_item = 'false';
$lib=new NewsList('../example1/example1.xml');
$lib->show_info();
?>
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|