我必须阅读具有&#XX;的大型 XML 文档(千兆字节)。字符集,其中 XX 小于 31。通常,我知道这些字符集 (<32) 是为 ASCII 设备控制保留的。
该文件的作者决定在文本中使用这个字符集,并且改变它是我无法控制的。
在声明 xml file: 的标头时,我尝试了不同的 xml 编码方案声明,超越UTF-8<?xml version="1.0" encoding ="UTF-8"?>
,但尝试在我的 XML 解析器中呈现它时没有成功。
为了使问题可重现和清晰,请考虑下面的简单 xml 文件(例如,Fred 后的字符集):
<?xml version="1.0" encoding ="UTF-8"?>
<TABLE>
<GRADES>
<STUDENT> Fred  </STUDENT>
<TEST1> 1 </TEST1>
<TEST2> 2 </TEST2>
<FINAL> 3 </FINAL>
</GRADES>
<GRADES>
<STUDENT> Wilma </STUDENT>
<TEST1> 1 </TEST1>
<TEST2> 2 </TEST2>
<FINAL> 3 </FINAL>
</GRADES>
</TABLE>
当我在不同的浏览器中阅读这些文件时,我得到了错误:
第 4 行第 22 列的错误:xmlParseCharRef:无效的 xmlChar 值 1
我知道一个可能的解决方案是预处理原始文件,查找并替换导致错误的字符,但是有人知道解决此问题的其他方法吗?是否有任何特定的编码支持&#XX; 字符集(XX < 32)?