[英]Fill in an existing xml file using PHP
i have an existing XML file and i would like to change certain fields in it using PhP. 我有一个现有的XML文件,我想使用PhP更改其中的某些字段。 For example say i want to change id and pw.
例如说我想更改id和pw。 Any help on how to open and write on the certain fields?
对如何打开和写入某些字段有帮助吗?
<info>
<contact:info xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0
contact-1.0.xsd">
<contact:id>reg_contact001</contact:id>
<contact:authInfo>
<contact:pw>my-password</contact:pw>
</contact:authInfo>
</contact:info>
</info>
$xml = <<<XML
<info>
<contact:info xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
<contact:id>reg_contact001</contact:id>
<contact:authInfo>
<contact:pw>my-password</contact:pw>
</contact:authInfo>
</contact:info>
</info>
XML;
function changeXML ($xml, $params) {
// prepare xml object
$xmlObj = new SimpleXMLElement($xml);
$namespaces = $xmlObj->getNameSpaces(true);
$entry = $xmlObj->children($namespaces['contact']);
// change data
$entry->info->id = $params->id;
$entry->info->authInfo->pw = $params->pw;
return '<info>' . $entry->saveXML() . '</info>';
}
print_r($xml);
$params = new \stdClass();
$params->id = 1;
$params->pw = 'supercowpowers';
$result = changeXML($xml, $params);
print_r($result);
Output 产量
<info>
<contact:info xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
<contact:id>reg_contact001</contact:id>
<contact:authInfo>
<contact:pw>my-password</contact:pw>
</contact:authInfo>
</contact:info>
</info>
<info>
<contact:info xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" schemaLocation="urn:ietf:params:xml:ns:contact-1.0 contact-1.0.xsd">
<contact:id>1</contact:id>
<contact:authInfo>
<contact:pw>supercowpowers</contact:pw>
</contact:authInfo>
</contact:info>
</info>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.