0

PHP を使用して mysql テーブルからレコードを XML ファイルに保存したいと考えています。レコードを正常に取得してデータベースに保存しています。xml に顧客テーブルのすべてのレコードを入力したい (CustomerAccountNumber,CustomerAccountName ,AccountBalance, InvAddressLine1)

これが私のコードです:

<?
  $newAcct=$db_accnt;
$newAcctname=$db_accntname;
$newAcctbalance=$db_accntbalance;

$xmldoc=new DOMDocument();
$xmldoc->load('XML/customer.xml');
$newElement = $xmldoc->createElement('Row');
$newAttribute = $xmldoc->createAttribute('CustomerAccountNumber');
$newAttribute->value = $newAct;
$newElement->appendChild($newAttribute);
$root->appendChild($newElement);
?>

私の質問は:

customer.xml を生成するにはどうすればよいですか? また、この形式のデータベースに基づいて効率的な方法で何千ものレコードを保存するにはどうすればよいです?

  <?xml version="1.0" standalone="yes"?>
  <Rows>
  <Row CustomerAccountNumber="CU002" CustomerAccountName="Customer 1" AccountBalance="289.00" />
  <Row CustomerAccountNumber="5U002" CustomerAccountName="Customer 2" AccountBalance="1899.00" />
   <Row CustomerAccountNumber="CU004" CustomerAccountName="Customer 3" AccountBalance="289.00" />
   <Row CustomerAccountNumber="5U032" CustomerAccountName="Customer 4" AccountBalance="1899.00" />
    </Rows>

各レコードに複数の属性を生成するために何をする必要があるのか​​ わかりません。助けてください

4

3 に答える 3

2

XMLであってもテキストファイルなので、そのまま書けばいいのですfile_put_contents()

$xml='<?xml version="1.0" standalone="yes"?>
<Rows>';

while($row=$result->mysqli_fetch_array()){
    $xml.='<Row CustomerAccountNumber="'.$row[0].'" CustomerAccountName="'.$row[1].'" AccountBalance="'.$row[2].'" />';
}
$xml.='</Rows>';
file_put_contents("customer.xml", $xml);
于 2012-11-13T11:14:57.803 に答える
2

XMLWriterを使用できます

$xml =new XMLWriter();
$xml->openURI('file.xml');
$xml->setIndent(true);
$xml->startDocument('1.0', 'UTF-8', 'yes');
$xml->startElement('Rows');
while ( // fetch from DB ) {
  $xml->startElement('Row');
  $xml->writeattribute("CustomerAccountNumber", "1");
  $xml->writeattribute("CustomerAccountName", "2");
  $xml->writeattribute("AccountBalance", "3");
  $xml->endElement();
}
$xml->endElement();
$xml->flush();
于 2012-11-13T11:48:37.687 に答える
1

.xml の生成に役立つ SimpleXML の使用を検討することをお勧めします。それは次のように簡単になります:

$row->addAttribute("CustomerAccountName", "name");

ドキュメントはこちら: http://www.php.net/manual/en/simplexml.examples-basic.php

于 2012-11-13T11:18:47.390 に答える