回车符(用于窗口新行)替换为 nokogiri
xml = Nokogiri::XML "<?xml version="1.0" encoding="UTF-8"?>n<a>ABC</a>n"
xml.xpath('a').first.content = "testingrnnewlines"
> "testingrnnewlines"
xml.to_s
> "<?xml version="1.0" encoding="UTF-8"?>n<a>testing nnewlines</a>n"
1)为什么Nokogiri这样做?
2)有没有办法避免这样做?
这是因为libxml2上的错误错误地转义r
不应该做,因为这是一个有效的XML值。
更多信息在这里
https://github.com/sparklemotion/nokogiri/issues/1356
我现在能看到的唯一解决方案是做
.gsub(" ", "r")
编码可能是问题所在。它正在将 \r 转换为其 HTML 代码。
尝试将编码设置为以下格式
之一doc = Nokogiri.XML('', nil, 'EUC-JP')
doc = Nokogiri.XML('', nil, 'windows-1252')
doc = Nokogiri.XML('', nil, 'ISO-8859-1')
参考: http://www.nokogiri.org/tutorials/parsing_an_html_xml_document.html