Böyle XML hatayı düzeltmek için nasıl

3 Cevap php

Bu gibi XML dosyası vardır:

<?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>

Ve benim php sayfa kod:

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

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

Yukarıdaki kodun çıktısı:

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

Ben XML oluşturduğunda, genellikle düğümler arasında beyaz boşluk içerdiği bilinmektedir. Ama herkes düğümler arasındaki XML bypass beyaz boşlukların elemanın tüm unsurları aracılığıyla bana döngü yardımcı olabilir. Ben sadece elementin tüm gerçek elemanları aracılığıyla döngü anlamına gelir. Pls bana yardım et.

3 Cevap

Bu deneyin

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

Sadece elemanları üzerinde yineleme yapmak istiyorsanız (ve benzeri elemanları ve yeniden düzenleyerek gibi hiçbir fantezi şeyler yapmak) Eğer XML ile ilgili çok daha basit hale simplexml -uzantısı için gitmek istiyorum :

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

Ne yaparsan yap, sadece semptomatik tedavi olacaktır. XML dosyası> kapanış arasında bir şey olarak, ilk etapta bu satır karakterleri içermemelidir ve açma < Bir metin öğesi olarak kabul edilir.