1

PHP と DOM を使用して XML を更新する際に問題に直面しています。XML ファイルの形式は次のとおりです。

元の XML (および必要な xml レイアウト):

<?xml version="1.0" standalone="yes"?>
<Rows>
  <Row CustomerAccountNumber="COU002" />
  <Row CustomerAccountNumber="COU023" />
  <Row CustomerAccountNumber="C2335" />
  <Row CustomerAccountNumber="CvbU002" />

保存するコード、つまり新しいレコードを XML (customer.xml) に追加するコードは次のとおりです。

<?php

$xmldoc=new DOMDocument();
$xmldoc->load('XML/customer.xml');

$newAct= 'c12345';

$root = $xmldoc->firstChild;

$newElement= $xmldoc->createElement('CustomerAccountNumber');
$root->appendChild($newElement);
$newText= $xmldoc->createTextNode($newAct);
$newElement->appendChild($newText);

$xmldoc->save('XML/customer.xml');
 ?>

問題 :コードは次の形式で新しいレコードを生成しています:

  <Rows>
  <Row CustomerAccountNumber="COU002" />
  <Row CustomerAccountNumber="COU023" />
  <Row CustomerAccountNumber="C2335" />
  <Row CustomerAccountNumber="CvbU002" />
  <CustomerAccountNumber>c12345</CustomerAccountNumber>

</Rows>

どこで間違いを犯しているのか理解できませんでした。元の XML 形式を保持したいだけです。上記の元の形式で出力ファイルが必要です (トップを参照)。ファイル自体の形式が正しくありません。Plz ヘルプ

4

1 に答える 1

1

あなたの問題は、現在新しいCustomerAccountNumber 要素を作成していることです。代わりに、新しいRow要素を作成してから、新しいCustomerAccountNumber属性を作成します。

$newElement = $xmldoc->createElement('Row');
$newAttribute = $xmldoc->createAttribute('CustomerAccountNumber');
$newAttribute->value = $newAct;
$newElement->appendChild($newAttribute);
$root->appendChild($newElement);
于 2012-11-10T18:04:53.790 に答える