【发布时间】:2014-12-02 02:13:13
【问题描述】:
我正在使用 PHP 的 XMLReader 处理 XML,我需要保留空格字符,包括我正在解析的数据中的回车符。但是,读者正在用换行符替换回车符。有没有办法指示它不要那样做?
【问题讨论】:
标签: php xml xml-parsing xmlreader
我正在使用 PHP 的 XMLReader 处理 XML,我需要保留空格字符,包括我正在解析的数据中的回车符。但是,读者正在用换行符替换回车符。有没有办法指示它不要那样做?
【问题讨论】:
标签: php xml xml-parsing xmlreader
XMLReader 会自动将\r\n\ 标准化为\n。尽管您想保留这些,但实际上 XML 规范 (2.11 End-of-Line Handling) 要求这样做。
您可以可能通过将\n 替换为\r\n 来解决此问题。
str_replace("\n", "\r\n", $reader->value)
对于空白处理,XMLReader 传递空白不变,并且在 WHITESPACE 和 SIGNIFICANT_WHITESPACE 节点之间有所不同。
一般来说,您需要“保留空白字符,包括数据中的回车” XML 不是处理数据的正确技术。
根据您的用例,您可以决定以某种方式对您拥有的二进制数据进行编码,以便将其保存在 XML 中,例如base64_encode。
【讨论】: