Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pętla Foreach używająca ciągu znaków do wyprowadzenia XML

foreach może iterować dowolną tablicę lub obiekt, który implementuje przechodzenie. Wynik PDOStatement::fetch() to rekord/wiersz. Po prostu podaj oświadczenie do foreach.

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

Lepszym API dla takich zrzutów jest XMLWriter . Zapisuje wynik bezpośrednio do strumienia, bez wcześniejszego przechowywania całego dokumentu w pamięci. Korzystanie z interfejsu API XML zajmie się również escapingiem w razie potrzeby. Oto mały przykład:

$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();

Wyjście:

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

W DOM tworzysz, dołączasz i konfigurujesz węzły. Oto mały przykład:https://stackoverflow.com/a/21760903/2265374




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak napisać zapytanie MySQL, które zwraca tymczasową kolumnę zawierającą flagi określające, czy element powiązany z tym wierszem istnieje w innej tabeli

  2. MySQL:NULL vs

  3. Przestarzałe funkcje MySQL

  4. Dostawcy członkostwa/roli ASP.NET dla MySQL?

  5. Jak pracować z podzapytaniami MySQL