我正在尝试将 XML 文件(带有“NDS”扩展名)作为数据读入我的 Android 应用程序。我选择走 DOM DocumentBuilder 路线,调用它的 parse 方法。
问题是其中一个节点名称中存在非 ASCII 增量 (Δ) 字符。这会导致解析操作失败并出现 DOMException。当我去掉有问题的线时,它就起作用了。
我在 Windows 下使用 .NET 库方法创建的 XML 文件本身,它的标题为<?xml version="1.0" encoding="utf-8"?>
. (我还注意到这个标头前面有 3 字节的 BOM。)
违规行周围的 XML 层次结构看起来像
<?xml version="1.0" encoding="utf-8"?>
<NDS SoftwareIdentity="MicroAnalyzer 2000" SoftwareVersion="3.5.8" WindowsVersion="Microsoft Windows NT 5.1.2600 Service Pack 3" CLRVersion="2.0.50727.3615" MachineName="SYSTEM2000_3033" MachineDescription="" DataSource="System2000_3033\SQLEXPRESS" Date="3/31/2012" Time="11:15 AM">
<ASME_B46_1_2002DataSet xmlns="http://tempuri.org/ASME_B46_1_2002DataSet.xsd">
<ASME_B46_1_2002RoughnessInstanceTable>
<InstanceAppendixId>-1</InstanceAppendixId>
<RΔaEnabled>false</RΔaEnabled>
</ASME_B46_1_2002RoughnessInstanceTable>
</ASME_B46_1_2002DataSet>
</NDS>
您会认为 delta 字符在 UTF-8 下是可以接受的,实际上 Internet Explorer 可以正确解释此 XML。