2012-11-10 49 views
1

我在更新使用PHP & DOM.My XML文件,我的XML面临的一个问题是这种格式:保存XML格式正确使用PHP和DOM

原始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> 

我不明白我在哪里做mistake.All我要保留我的原始XML format.I希望输出文件在上面提到的原始格式(请参阅上面)。良好引导我,并指出我在哪里我犯的错误是在文件本身生成不正确的格式。Plz帮助

回答

1

您的问题是,您目前正在创建一个新的CustomerAccountNumber元素。相反,您要创建一个新的元素,然后create a new CustomerAccountNumber attribute

$newElement = $xmldoc->createElement('Row'); 
$newAttribute = $xmldoc->createAttribute('CustomerAccountNumber'); 
$newAttribute->value = $newAct; 
$newElement->appendChild($newAttribute); 
$root->appendChild($newElement);