Я пробую один простой пример PHP XML следующим образом.simplexml_load_string сбой при использовании параметра строки стиля heredoc
// code of PHP
===================================================
<?php
$string = <<<XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
XML;
print "BEGIN</br>";
print "String:</br>{$string}";
$xml = simplexml_load_string($string);
print "</br>XML Obj:</br>";
print_r($xml);
print "</br>Var Dump:</br>";
var_dump($xml);
print "</br>END";
?>
===================================================
и выходы кажется OK
// output
===================================================
BEGIN
String:
George John Reminder Don't forget the meeting!
XML Obj:
SimpleXMLElement Object ([to] => George [from] => John [heading] => Reminder [body] => Don't forget the meeting!)
Var Dump:
object(SimpleXMLElement)#1 (4) { ["to"]=> string(6) "George" ["from"]=> string(4) "John" ["heading"]=> string(8) "Reminder" ["body"]=> string(25) "Don't forget the meeting!" }
END
===================================================
While, когда я пытаюсь форматировать первую строку строки Heredoc стиле, добавив некоторые пробелы перед ним, добавив две заготовки до следующего строки <?xml version="1.0" encoding="ISO-8859-1"?>
, затем он всегда не смог вывести информацию об объекте $ xml.
// code of PHP
===================================================
<?php
$string = <<<XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
XML;
... ...
===================================================
// output
===================================================
BEGIN
String:
George John Reminder Don't forget the meeting!
XML Obj:
Var Dump:
bool(false)
END
Надеюсь, кто-то может мне помочь !!! Большое спасибо.
Не ставьте пробелы перед прологом? Почему вы это делаете? – Wrikken
+1 или используйте $ xml = simplexml_load_string (trim ($ string)); – sinisake
Спасибо за вашу помощь, потому что это немного уродливо, поэтому я просто пытаюсь отформатировать его, ну, похоже, есть некоторые рекомендации по завершению ярлыка строки стиля heredoc, в то время как я не нашел никаких требований к содержимому строки и после форматирования содержимого строки он всегда терпит неудачу, и после нескольких попыток я нахожу только пустое, прежде чем первая строка содержимого строки влияет на результат, и мне интересно, поэтому я отправляю вопрос. –