[請益] XML 解析錯誤: 找不到元素

看板PHP作者 (鍛翼)時間12年前 (2012/05/08 21:14), 編輯推噓6(6019)
留言25則, 4人參與, 最新討論串1/1
各位好 我用php寫一個將網頁存成XML檔 存起來的XML檔開啟後,卻出現以下的訊息如下: XML 解析錯誤: 找不到元素 位址: file:///C:/TWAMPd/htdocs/library.xml 行號 2, 第 1 個字: 我的php code如下所示: <body> <form name=form1> <?php $xml = "http://zh.wikipedia.org/w/api.php?action=query&titles=漁人碼頭 &prop=info&inprop=url&format=xml" $doc = new DOMDocument(); $doc->load("$xml"); $doc->save("C:\TWAMPd\htdocs\library.xml"); ?> </form> </body> 請問該怎麼做才能使存起來的XML檔可以正常顯示? 麻煩各位版友了,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.20.145

05/08 21:29, , 1F
把你的XML檔開起來看看
05/08 21:29, 1F

05/08 21:29, , 2F
用notepad之類的
05/08 21:29, 2F

05/08 21:34, , 3F
只出現 <?xml version="1.0"?> 這麼一行
05/08 21:34, 3F

05/08 21:40, , 4F
那代表你的$xml並沒有寫進去
05/08 21:40, 4F

05/08 21:44, , 5F
tw.php.net/manual/en/domdocument.load.php#91384
05/08 21:44, 5F

05/08 21:46, , 6F
不然就先取得資料 再丟到DOMDocument裡面
05/08 21:46, 6F
我是參考網路上的一些程式碼所寫成code $doc = new DOMDocument(); $doc->load("http://news.google.com.tw/news?ned=tw&ned=tw&q=%E6%B0%A 3%E5%80%99%E8%AE%8A%E9%81%B7&ie=UTF-8&output=rss"); $doc->save("C:\TWAMPd\htdocs\library.xml"); 上方的程式碼是可以抓下完整的XML檔的,所以我也不知道我是哪邊搞錯@@"

05/08 21:52, , 7F
你的dom裡面又沒有資料~當然只有宣告那行QQ"
05/08 21:52, 7F

05/08 21:53, , 8F
你應該是要用curl之類的把目標的網頁內容整個抓下來
05/08 21:53, 8F

05/08 21:53, , 9F
然後再用檔案處理的函式把資料存成xml檔吧?
05/08 21:53, 9F

05/08 21:55, , 10F
05/08 21:55, 10F

05/08 21:56, , 11F
參考一下檔案處理的部份吧^^
05/08 21:56, 11F
意思就是我要先用curl抓全部後,再存成XML檔嗎? ※ 編輯: renmax 來自: 140.129.20.145 (05/08 22:17)

05/08 22:23, , 12F
疑...等等~我剛剛好像看錯了~我先測一下你的程式
05/08 22:23, 12F

05/08 22:25, , 13F
你在跑得時候有出現什麼錯誤訊息嗎?
05/08 22:25, 13F

05/08 22:32, , 14F
完全沒出現什麼訊息 只有開啟存起來的xml檔才出現上面訊息
05/08 22:32, 14F

05/08 22:37, , 15F
可是我跑的時候有出現錯誤訊息耶XD
05/08 22:37, 15F
以下是我完整的程式碼 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Wikipedia Information</title> </head> <body> <form name=form1> <?php $xml = "http://zh.wikipedia.org/w/api.php?action=query&titles=漁人碼頭 &prop=info&inprop=url&format=xml"; echo "hahaha<br>" . "$xml" . "<br>"; $doc = new DOMDocument(); $doc->load("$xml"); $doc->save("C:\TWAMPd\htdocs\library.xml"); //xml檔儲存路徑 ?> </form> </body> </html> 用瀏覽器測試此php code無任何訊息出現,打開存起來的XML檔 用notepad++打開後,只出現 <?xml version="1.0"?> 這一行 若用瀏覽器打開,就會出現下面的訊息 XML 解析錯誤: 找不到元素 位址: file:///C:/TWAMPd/htdocs/library.xml 行號 2, 第 1 個字: ※ 編輯: renmax 來自: 140.129.38.219 (05/08 22:52)

05/08 22:49, , 16F
嗯...我抓到wiki那邊的xml了....你要用curl才能抓的到
05/08 22:49, 16F

05/08 22:49, , 17F
他們設user-agent的限制...沒這項資訊會被擋住....
05/08 22:49, 17F

05/08 22:51, , 18F
http://pastie.org/3879260 剩下的就您自己處理囉~
05/08 22:51, 18F

05/08 22:51, , 19F
加油^^
05/08 22:51, 19F

05/08 22:53, , 20F
好的 我會研究看看 由衷的謝謝您!!
05/08 22:53, 20F

05/08 23:06, , 21F
啊我給的連結就有講啦 XD
05/08 23:06, 21F

05/09 00:19, , 22F
h大 你的code中 echo get_data($xml);是印在瀏覽器上 還是
05/09 00:19, 22F

05/09 00:19, , 23F
只能用原始檔看xml呢?
05/09 00:19, 23F

05/09 11:57, , 24F
小弟淺見,他給你的程式碼不是把寫入的部份註解掉了
05/09 11:57, 24F

05/09 11:58, , 25F
不對別理我…發現我沒搞清楚邏輯,抱歉
05/09 11:58, 25F
文章代碼(AID): #1FgHmc3V (PHP)