【问题标题】:Is there any way to instruct PHP XMLReader to *not* normalize carriage returns in elements有什么方法可以指示 PHP XMLReader *not* 规范化元素中的回车符
【发布时间】:2014-12-02 02:13:13
【问题描述】:

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

【问题讨论】:

    标签: php xml xml-parsing xmlreader


    【解决方案1】:

    XMLReader 会自动将\r\n\ 标准化为\n。尽管您想保留这些,但实际上 XML 规范 (2.11 End-of-Line Handling) 要求这样做。

    您可以可能通过将\n 替换为\r\n 来解决此问题。

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

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

    一般来说,您需要“保留空白字符,包括数据中的回车” XML 不是处理数据的正确技术。

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

    【讨论】:

      猜你喜欢
      • 2015-08-11
      • 2017-03-26
      • 2012-04-05
      • 2010-12-17
      • 2016-08-22
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多