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 格式。我想要上面提到的原始格式的输出文件(见顶部)。请指导我并指出我在哪里犯了正在生成的错误文件本身格式不正确。请帮助

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 回答