2009-08-31 59 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文件不应该包含那些换行符摆在首位,作为闭幕>开放<被认为是一个文本元素之间的任何东西。