有没有任何方法可以指示PHP XMLReader*不*规范元素中的回车


Is there any way to instruct PHP XMLReader to *not* normalize carriage returns in elements

我正在用PHP的XMLReader处理XML,我需要保留空白字符,包括我正在解析的数据中的回车。但是,读卡器正在用换行符替换回车符。有没有办法指示它不要那样做?

XMLReader将自动将'r'n'规范化为'n。尽管您希望保留这些,但它实际上是XML规范(2.11行尾处理)所要求的。

您可以通过随后用'r'n替换'n来解决这一问题。

str_replace("'n", "'r'n", $reader->value)

对于空白空间处理,XMLReader不改变地传递空白空间,并且在WHITESPACESIGNIFICANT_WHITESPACE节点之间不同。

一般来说,由于您需要"保留空白字符,包括数据中的回车"XML不是处理数据的合适技术。

根据您的用例,您可以决定以某种方式对二进制数据进行编码,以便将其保存在XML中,例如使用base64_encode