2009-08-31 32 views
0

我有XML文件:如何修復XML錯誤喜歡這樣這個

<?xml version="1.0" encoding="ISO-8859-1"?> 
<note> 
<to>Tove</to> 
<from>Jani</from> 
<heading>Reminder</heading> 
<body>Don't forget me this weekend!</body> 
</note> 

而且我的代碼在我的PHP頁面:

<? php 
$xmlDoc = new DOMDocument(); 
$xmlDoc->load("note.xml"); 

$x = $xmlDoc->documentElement; 
foreach ($x->childNodes AS $item) 
{ 
    print $item->nodeName . " = " . $item->nodeValue . "<br />"; 
} 
?> 

代碼的輸出上面是:

#text = 
to = Tove 
#text = 
from = Jani 
#text = 
heading = Reminder 
#text = 
body = Don't forget me this weekend! 
#text = 

我知道,當XML生成,它常常包含節點之間的空格。但任何人都可以幫助我遍歷節點之間的XML旁路空白元素的所有元素。我的意思是隻通過元素的所有實際元素循環。請幫助我。

+0

你應該考慮一下旁邊幫你解決問題的答案大打勾。這是對正在幫助你的人們表示感謝的一種方式。 – random 2009-09-12 05:16:04

回答

4

試試這個

$xmlDoc = new DOMDocument(); 
$xmlDoc->preserveWhiteSpace = false; 
$xmlDoc->load("note.xml"); 
+0

謝謝你,非常感謝你。我正在編輯我的問題,但你回答了。謝謝 – 2009-08-31 10:45:43

2

如果你只是想遍歷元素(並沒有花哨的東西,如重新排序元素等),我會去的simplexml -extension,使處理XML更簡單:

$xml = simplexml_load_file('note.xml'); 
foreach ($xml as $node) { 
    echo $node->getName() . ' = ' . (string)$node . '<br />'; 
} 
0

無論你做什麼,它只是對症治療。 XML文件不應該包含那些換行符擺在首位,作爲閉幕>開放<被認爲是一個文本元素之間的任何東西。