Δημιουργία XML αρχείων με PHP 4

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
noname86
Δημοσιεύσεις: 4
Εγγραφή: 05 Ιαν 2007 19:24

Δημιουργία XML αρχείων με PHP 4

Δημοσίευση από noname86 » 05 Ιαν 2007 19:52

τι προσπαθώ να κάνω :
να φτιάξω κώδικα php που να φτιάχνει ένα αρχείο xml της μορφής:
<?xml version="1.0"?>
<!DOCTYPE Data SYSTEM "def.dtd">
<Data>
<Project>
<ProjectID>P01</ProjectID>
<ProjectName>onoma1</ProjectName>
<Programmer ProgrammerID="P04" ProgrammerName="nikos4">56</Programmer>
<Programmer ProgrammerID="P14" ProgrammerName="nikos14">36</Programmer>
<Programmer ProgrammerID="P03" ProgrammerName="nikos3">66</Programmer>
<Programmer ProgrammerID="P07" ProgrammerName="nikos7">46</Programmer>
</Project>
<Project>
<ProjectID>P02</ProjectID>
<ProjectName>onoma2</ProjectName>
<Programmer ProgrammerID="P04" ProgrammerName="nikos4">6</Programmer>
<Programmer ProgrammerID="P09" ProgrammerName="nikos9">3</Programmer>
<Programmer ProgrammerID="P06" ProgrammerName="nikos6">16</Programmer>
<Programmer ProgrammerID="P15" ProgrammerName="nikos15">4</Programmer>
</Project>

</Data>
όπου : def.dtd
<!ELEMENT Data (Protject?)+ >
<!ELEMENT Project (ProjectID, ProjectName, Programmer?)* >
<!ELEMENT ProjectID (#PCDATA)>
<!ELEMENT ProjectName (#PCDATA)>
<!ELEMENT Programmer (#PCDATA)*>
<!ATTLIST Programmer ProgrammerID CDATA "" ProgrammerName CDATA "">
έτσι αφού έμαθα ότι ο ποιο εύκολος τρόπος ήταν με την χρήση DOM έγραψα το παρακάτω για την εγγραφη ενώ project με έναν προγραμματιστή
:
<html><head><title>Create Table</title></head><body>
<?php
require_once 'stripFormSlashes.inc.php';echo 'Project saved';
$dom= domxml_open_mem(file_get_contents ('DATA.xml'));

$project = $dom->create_element('Project');

$projectid=$dom->create_element('ProjectID');
$projectid->set_content(P03);


$projectname=$dom->create_element('ProjectName');
$projectname->set_content(La_Project);


$programmer=$dom->create_element('Programmer');
$programmer->set_content(La_Project);
$programmer->set_attribute('ProgrammerID',P00);
$programmer->set_attribute('ProgrammerName',Oxi_O_nikos_pantos);

$project->append_child($projectid);
$project->append_child($projectname);
$project->append_child($programmer);
$root=$dom->document_element();
$root->append_child($project);

file_put_contents('DATA.xml',$dom->dump_mem());
echo 'Project saved';
?>
</body></html>
Ωστόσο όλο το παραπάνω το μονο που κάνει είναι να τυπώνει τον κώδικα μετά το πρώτο -> και φύσικα ούτε συζήτηση για την δημιουργία αρχείου xml ..
λοιπόν είναι ο παραπάνω κώδικας σωστός ? υπάρχει κάποιος άλλος καλύτερος τρόπος να κάνω αυτό που θέλω? ...

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Δημιουργία XML αρχείων με PHP 4

Δημοσίευση από cpulse » 06 Ιαν 2007 19:11

Εμένα θα με βόλευαν πολύ τα printf...

Κώδικας: Επιλογή όλων

$fmt_prj_id = '<ProjectID>%s</ProjectID>' . "\n";
$fmt_prj_name = '<ProjectName>%s</ProjectName>' . "\n";
$fmt_prj_element = '<Programmer ProgrammerID="%s" ProgrammerName="%s">%s</Programmer>' . "\n";

if &#40;$fp = fopen&#40;'DATA.xml', 'w'&#41;&#41; &#123;

	fwrite&#40;$fp, '<Project>' . "\n"&#41;;
	fwrite&#40;$fp, sprintf&#40;$fmt_prj_id, 'P01'&#41;&#41;;
	fwrite&#40;$fp, sprintf&#40;$fmt_prj_name, 'onoma1'&#41;&#41;;
	fwrite&#40;$fp, sprintf&#40;$fmt_prj_element, 'P04', 'nikos4', '56'&#41;&#41;;
	fwrite&#40;$fp, sprintf&#40;$fmt_prj_element, 'P14', 'nikos14', '36'&#41;&#41;;
	fwrite&#40;$fp, sprintf&#40;$fmt_prj_element, 'P03', 'nikos3', '66'&#41;&#41;;
	fwrite&#40;$fp, sprintf&#40;$fmt_prj_element, 'P07', 'nikos7', '46'&#41;&#41;;
	fwrite&#40;$fp, '</Project>' . "\n"&#41;;


	fclose&#40;$fp&#41;;
&#125;
Αλλά αν θες και μια ακόμα συμβουλή.. μη χρησιμοποιείς μικρά και κεφαλαία για xml tags.. μόνο μικρά καλύτερα. Και για να χωρίζεις λέξεις βάζε underscores (_).

noname86
Δημοσιεύσεις: 4
Εγγραφή: 05 Ιαν 2007 19:24

Δημιουργία XML αρχείων με PHP 4

Δημοσίευση από noname86 » 06 Ιαν 2007 20:49

thenx!!! tha to kanw etsi opws les ^^

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες