Formatowanie kodu XML generowanego maszynowo

0

Mam pytanie, czy kiedy dokument XML jest generowany (i potem przetwarzany) maszynowo, np. przez skrypt PHP:,

<SCRIPT LANGUAGE="PHP">
  header("Content-Type: text/xml");
  echo "<date>\n";
  echo "  <day>".date("d")."</day>\n";
  echo "  <month>".date("m")."</month>\n";
  echo "  <year>".date("Y")."</year>\n";
  echo "</date>";
</SCRIPT>

To czy warto generować sformatowane i ładnie wyglądające drzewo jak w skrypcie powyżej, czy też zwracać surowy kod bez żadnego formatowania.

1

Przy takim małym nie ma znaczenia. Przy takim co 200Gb formatowanie będzie miało znaczny wpływ na wielkość XMLa

2

@Manna5:

Nie tylko XML, JSON tak samo
Zobacz sobie na (już lekko nieaktualne w lutym) statystyki 4Programmers
TLDR:) Link na dole wpisu :)...
W postaci "pretty" nie mogłem ich wystawić na GitHub bo przekraczałem limit 25 MB
W scrappowaniu, zapytaniach nie miało znaczenia czy "pretty" czy nie a dla ludzi 25 M to i tak za dużo do "ogarnięcia" wzrokowo.
Do pliku raw na GitHub masz link w cytowanym wpisie

Oczywiście do testów, analizowania, projektowania JSON/XML pretty jak najbardziej. Nie potrafię - ja: człowiek - czytać ze zrozumieniem bez formatowania, wcięć i podziału na linie.

4

Nie ma sensu generować w wersji sformatowenej. Normalni (nietechniczni) ludzie nie będą tego czytać. Techniczni sformatują sobie za pomocą xmllint --format lub jakiegoś innego narzędzia

0

"Produkcyjnie" pretty to chyba tylko w miejscach "edukacyjnych" jak na przykład
https://jsonplaceholder.typicode.com/users/

0

Dziękuję za odpowiedź.

1

Z samej treści skryptu wynika, że wysyłasz to do przegladarki, teraz wlasciwie wszystkie przeglądarki nie pokazuja czystego xml-a,tylko ostylowuja go, że można zwijać węzły i same robią wcięcia: np:

https://www.w3schools.com/xml/note.xml

Co do zasady to nie używa się stringa do klejenia xml, tylko korzysta z bibliotek do jego obsługi, wtedy sformatowanie, czy nie nie ma znaczenia:

<?php

$xml = new SimpleXMLElement("<date></date>");
$xml->addChild('day',date("d"));
$xml->addChild('month',date("m"));
$xml->addChild('year',date("y"));
echo $xml->asXML();
//niesformatowany
echo "<pre>".htmlspecialchars($xml->asXML())."</pre>";

//sformatowany
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xml->asXML());
echo "<pre>".htmlspecialchars($dom->saveXML())."</pre>";

1 użytkowników online, w tym zalogowanych: 0, gości: 1