2009-08-31 8 views
0

내가 가지고있는 XML 파일과 같은 XML의 버그를 수정하는 방법 :이 같은이

내 PHP 페이지에서
<?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 
$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 요소의 모든 요소를 ​​통해 노드 사이의 흰색 공백을 우회 할 수 있습니다. 나는 요소의 모든 실제 요소를 통해 반복하는 것을 의미합니다. Pls 날 도와 줘요.

+0

문제를 해결하는 데 도움이되는 대답 옆의 큰 눈금을 클릭하는 것이 좋습니다. 그것은 당신을 돕는 사람들에게 감사하다는 말입니다. – random

답변

4

보십시오이

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

고마워, 정말 고마워. 나는 내 질문을 편집하고 있지만 당신은 대답했다. 감사 –

2

단순히 요소를 반복 할 (등등 요소를 재정렬과 같은 더 멋진 물건을하지 않는다) 나는 XML을 다루는 만드는 simplexml -extension, 가고 싶어하는 경우 훨씬 더 간단합니다 :

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

무엇이든지간에, 그것은 단지 증상 치료가 될 것입니다. XML 파일에는 처음에 개행 문자가 포함되어서는 안됩니다. 닫는 문자 >과 열기 < 사이의 문자는 텍스트 요소로 간주됩니다.