gpt4 book ai didi

java - XML解析错误: UTF-8

转载 作者:行者123 更新时间:2023-12-01 05:18:56 26 4
gpt4 key购买 nike

我正在尝试将 XML 文件(带有“NDS”扩展名)作为数据读入我的 Android 应用程序。我选择采用 DOM DocumentBuilder 路线,调用其解析方法。

问题是节点名称之一中存在非 ASCII 增量 (Δ) 字符。这会导致解析操作失败并出现 DOMException。当我删除有问题的行时,它就起作用了。

我在 Windows 下使用 .NET 库方法创建的 XML 文件本身,它的 header 为 <?xml version="1.0" encoding="utf-8"?> 。 (我还注意到这个 header 前面有 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>

您可能认为增量字符在 UTF-8 下是可以接受的,事实上 Internet Explorer 可以正确解释此 XML。

最佳答案

阅读http://www.w3.org/TR/REC-xml/#NT-NameChar

[4]     NameStartChar      ::=      ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]


[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]

有一些 unicode 字符在 XML 1.0 中有效,但不是全部。您的角色 (#x394) 是有效的 NameStartChar,在 [#x37F-#x1FFF] 范围内。

关于java - XML解析错误: UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10755901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com