Существует XML файл со следующим содержимым:
<StaticDataRequest>
<Header>
<Code>XXXX</Code>
<Username>XXXX</Username>
<Password>XXXX</Password>
</Header>
<Body>
<GetStaticData>countries</GetStaticData>
</Body>
</StaticDataRequest>
Мне нужно изменить значения Code, Username, Password
вышеуказанного файла и сохранить его.
Итак, я прочитал этот файл по следующей команде:
$xml = simplexml_load_file("country_request.xml");
И я изменил значения элементов, как показано ниже:
$xml->Header->Code = 'myCode';
$xml->Header->Username = 'myUsername';
$xml->Header->Password = 'myPassword';
Теперь $xml
- это объект со следующей структурой:
SimpleXMLElement Object
(
[Header] => SimpleXMLElement Object
(
[Code] => myCode
[Username] => myUsername
[Password] => myPassword
)
[Body] => SimpleXMLElement Object
(
[GetStaticData] => countries
)
)
Вопрос
Главный вопрос: как написать $xml
в XML файл с XML-структурой?
Это будет так:
<StaticDataRequest>
<Header>
<Code>myCode</Code>
<Username>myUsername</Username>
<Password>myPassword</Password>
</Header>
<Body>
<GetStaticData>countries</GetStaticData>
</Body>
</StaticDataRequest>
simplexml_load_file
возвращает объект SimpleXMLElement
. Если вы просмотрите документацию, вы найдете следующее:
public mixed asXML ([string $ filename])
Другими словами:
$file = "country_request.xml";
$xml = simplexml_load_file($file);
// Do you stuff here...
if ($xml->asXML($file)) {
echo 'Saved!';
} else {
echo 'Unable to save to file :(';
}
$file
содержится его xml версия <?xml version="1.0"?>
. я могу записать в $file
без версии XML в первой строке?