我在使用PHP&更新我的XML时遇到了问题。 DOM.My 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 help
答案 0 :(得分:1)
您的问题是,您目前正在创建新的CustomerAccountNumber
元素。相反,您要创建新的Row
元素,然后create a new CustomerAccountNumber
attribute:
$newElement = $xmldoc->createElement('Row');
$newAttribute = $xmldoc->createAttribute('CustomerAccountNumber');
$newAttribute->value = $newAct;
$newElement->appendChild($newAttribute);
$root->appendChild($newElement);