Mailinglisten-Archive |
Hallo Andi,
Andi Voss wrote:
> <table:table-row>
> <table:table-cell table:style-name="Table2.A2"
> office:value-type="string">
> <text:p text:style-name="P2">{NO. RECEIPTS}</text:p>
> </table:table-cell>
> <table:table-cell table:style-name="Table2.A2"
> office:value-type="string">
> <text:p text:style-name="P2">{DESCRIPTION RECEIPTS}</text:p>
> </table:table-cell>
> <table:table-cell table:style-name="Table2.A2"
> office:value-type="string">
> <text:p text:style-name="P2">{CATEGORY RECEIPTS}</text:p>
> </table:table-cell>
> <table:table-cell table:style-name="Table2.D2"
> office:value-type="string">
> <text:p text:style-name="P2">{RECEIPTS}<text:s/>{AMOUNT}</text:p>
> </table:table-cell>
> </table:table-row>
Hier ein lauffähiges Beispiel, wie ich es machen würde:
http://www.media-palette.de/test/xmltable.zip
Ein paar Anmerkungen im Detail:
$data_rows = 3; //Für Testdatensätze
//Platzhalter-Tabellenreihe holen:
require_once("xml-line.php");
$xml = new xml_line('xml1.xml');
$xml->copy_branch(0,'table:table-row');
$result = $xml->xml_stream();
$table_row = $result[0][0][0];
//print_r($table_row); //Testanzeige
//Platzhalter definieren:
$search_arr = array('{NO. RECEIPTS}',
'{DESCRIPTION RECEIPTS}',
'{CATEGORY RECEIPTS}',
'{RECEIPTS}',
'{AMOUNT}');
//Testdaten generieren:
$replace_arr = array();
$i = 0;
for ($i = 0; $i <3; $i++) {
$replace_arr[] = array("n$i", "dr$i", "cr$i", "r$i", "a$i");
}
//Platzhalter ersetzen und Tabellenreihen verketten:
$table_rows= '';
for ($i = 0; $i <3; $i++) {
$table_rows .= str_replace($search_arr,
$replace_arr[$i],
$table_row);
}
//Neues XML-Objekt. Ausgabeformat und -datei angeben:
$xml = new xml_line('xml1.xml', "xml", "out.xml");
//Eresetzungselement definieren und -methode aufrufen.
$arg=array(0, 'table:table-row');
$xml->replace_element($arg, $table_rows);
$xml->xml_stream();
Viele Grüße
Peter
php::bar PHP Wiki - Listenarchive