sql >> Database teknologi >  >> RDS >> Mysql

Foreach loop bruger streng til at udlæse XML

foreach kan iterere ethvert array eller objekt, der implementerer gennemkørbar. Resultatet af PDOStatement::fetch() er rekorden/rækken. Bare giv erklæringen til foreach.

foreach($statement as $row) { ...   

Den bedre API til sådanne dumps er XMLWriter . Den skriver resultatet direkte til en stream uden først at gemme hele dokumentet i hukommelsen. Brug af en XML API vil også tage sig af escape efter behov. Her er et lille eksempel:

$statement = [
  [ 'name' => 'one', 'location' => '...', /* ... */],
  [ 'name' => 'two', 'location' => '...', /* ... */]
];

$xmlWriter = new XMLWriter();
$xmlWriter->openUri('php://stdout');

$xmlWriter->startDocument();
$xmlWriter->setIndent(2);
$xmlWriter->startElement('markers');
foreach ($statement as $row) {
  $xmlWriter->startElement('marker');
  $xmlWriter->writeAttribute('name', $row['name']);
  /* other attributes ... */
  $xmlWriter->endElement();
}
$xmlWriter->endElement();
$xmlWriter->endDocument();

Output:

<?xml version="1.0"?>
<markers>
 <marker name="one"/>
 <marker name="two"/>
</markers>

I DOM opretter, tilføjer og konfigurerer du noder. Her er et lille eksempel:https://stackoverflow.com/a/21760903/2265374




  1. tilfældige 2 poster efter position og rækkefølge efter position

  2. java Dvale unødvendige forespørgsler på løsrevne objekter

  3. Sådan uploader du flere billeder ved hjælp af codeigniter

  4. MySQL spaltelåsning