Tôi phải phân tích cú pháp XML được cung cấp bên ngoài có thuộc tính có ngắt dòng trong chúng. Sử dụng SimpleXML, các ngắt dòng dường như bị mất. Theo số another stackoverflow question, ngắt dòng phải hợp lệ (mặc dù ít hơn nhiều so với lý tưởng!) Cho XML.PHP SimpleXML không bảo toàn ngắt dòng trong thuộc tính XML
Tại sao chúng bị mất? [sửa] Và làm thế nào tôi có thể bảo tồn chúng? [/ edit]
Đây là tập lệnh bản giới thiệu (lưu ý rằng khi ngắt dòng không nằm trong thuộc tính mà chúng được giữ nguyên).
PHP tập tin với XML nhúng
$xml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<Rows>
<data Title='Data Title' Remarks='First line of the row.
Followed by the second line.
Even a third!' />
<data Title='Full Title' Remarks='None really'>First line of the row.
Followed by the second line.
Even a third!</data>
</Rows>
XML;
$xml = new SimpleXMLElement($xml);
print '<pre>'; print_r($xml); print '</pre>';
Output từ print_r
SimpleXMLElement Object
(
[data] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[Title] => Data Title
[Remarks] => First line of the row. Followed by the second line. Even a third!
)
)
[1] => First line of the row.
Followed by the second line.
Even a third!
)
)
Bạn nên đặt câu hỏi này trong trang chủ PHP. Tôi đoán đó là bởi vì đó là trình phân tích cú pháp xml SIMPLE. – jbasko
Bạn có thể giải thích thêm một chút về ý nghĩa của trang chủ PHP không? – Joshua
Ban đầu câu hỏi của bạn là "Tại sao SimpleXML thực hiện những gì nó làm?" Đó là những gì bạn có thể hỏi đó là nhà phát triển không phải người dùng. – jbasko