Muszę dynamicznie generować plik xml w czasie wykonywania. Pomóż mi w generowaniu poniższego pliku XML dynamicznie za pomocą PHP.
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<track>
<path>song1.mp3</path>
<title>Track 1 - Track Title</title>
</track>
<track>
<path>song2.mp3</path>
<title>Track 2 - Track Title</title>
</track>
<track>
<path>song3.mp3</path>
<title>Track 3 - Track Title</title>
</track>
<track>
<path>song4.mp3</path>
<title>Track 4 - Track Title</title>
</track>
<track>
<path>song5.mp3</path>
<title>Track 5 - Track Title</title>
</track>
<track>
<path>song6.mp3</path>
<title>Track 6 - Track Title</title>
</track>
<track>
<path>song7.mp3</path>
<title>Track 7 - Track Title</title>
</track>
<track>
<path>song8.mp3</path>
<title>Track 8 - Track Title</title>
</track>
Odpowiedzi:
Użyłbym SimpleXMLElement .
źródło
<?xml version="1.0" encoding="WHATEVER_IT_IS"?>
instrukcję przetwarzania. Wierzę, że SimpleXMLElement zrobi właściwą rzecz: konwertuje wszystkie kwerendy ciągów znaków na twoje mb_internal_encoding.$xml = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\" ?><Person></Person>");
Aby utworzyć XMLdocument w PHP, należy utworzyć instancję klasy DOMDocument, utworzyć węzły potomne i dołączyć te węzły do właściwej gałęzi drzewa dokumentów.
W celach informacyjnych możesz przeczytać http://it.php.net/manual/en/book.dom.php
Teraz zajmiemy się krótkim kodem poniżej.
To są podstawy, możesz utworzyć i dołączyć węzeł tylko w linii (na przykład 13.), możesz robić wiele innych rzeczy z dom api. To zależy od Ciebie.
Edycja: Jeszcze jedna wskazówka: Główną zaletą korzystania z xmldocument (dokument domowy lub simplexml) zamiast drukowania xml jest to, że xmltree można przeszukiwać za pomocą zapytania xpath
źródło
$domtree->save('mypath/xmlfile.xml');
?$domtree->formatOutput = true;
aby wynik był ładny :)Content-Disposition: attachment
i wydrukuj wynik saveXml. Możesz także zaproponować nazwę pliku.Łatwy do złamania sposób to:
zapisz jako .php
źródło
Dzięki FluidXML możesz bardzo łatwo wygenerować swój XML.
https://github.com/servo-php/fluidxml
źródło
Spójrz na system szablonów Tiny But Strong . Zwykle służy do tworzenia szablonów HTML, ale istnieje rozszerzenie, które działa z plikami XML. Używam tego szeroko do tworzenia raportów, w których mogę mieć jeden plik kodu i dwa pliki szablonów - htm i xml - a użytkownik może następnie wybrać, czy wysłać raport do ekranu czy arkusza kalkulacyjnego.
Kolejną zaletą jest to, że nie musisz kodować xml od zera, w niektórych przypadkach chciałem wyeksportować bardzo duże złożone arkusze kalkulacyjne, a zamiast kodować cały eksport, wystarczy zapisać istniejący arkusz kalkulacyjny w xml i zamień w tagach kodu, w których wymagane jest wyjście danych. To szybki i bardzo wydajny sposób pracy.
źródło
Wystarczy połączyć się z bazą danych, aby utworzyć plik test.xml w folderze projektu
źródło