PHP: как записать объект XML в файл XML

0

Существует 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>
  • 0
    Не могли бы вы включить в заголовок язык программирования, который вы используете?
  • 0
    Подобный вопрос был задан и удален вами вчера.
Показать ещё 4 комментария
Теги:
object

1 ответ

0
Лучший ответ

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 :(';
}
  • 0
    Это сработало tnx, но в первой строке $file содержится его xml версия <?xml version="1.0"?> . я могу записать в $file без версии XML в первой строке?
  • 0
    @ user41888 XML-файлы должны иметь версию. Но если вы действительно хотите, чтобы это ушло, тогда этот вопрос должен помочь вам.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню