SAX 解析器中的 Character() 方法

Character() method in SAX parser

在使用 SAX 解析器解析 XML 文件时,SAX 解析器究竟何时调用 character() 方法? 更具体地说,我的 XML 文件有很多学生标签

<Student>
  <details>
     /*
       Contains the details of student 
       This piece of text may have many special characters
     */
  </details>
</Student>

我希望所有学生的所有详细信息都存储在一个 arrayList 中。但是我发现如果有一些特殊字符,character() 方法会被调用,索引只到特殊 character.How 我能克服吗?

<details>...</details> 中,字符事件可能会被调用 几次 次以提供一部分文本。

XML 文件采用某种编码,默认为 UTF-8。使用 Notepad++ 或 JEdit 等程序员的编辑器,您可以轻松找到它。这应该与第一行相同:

<?xml version="1.1" encoding="Windows-1252">

如果您将 XML 作为字符串,那么您已经拥有 Unicode。文本应该被正确阅读。那可能做错了。用 Reader.

解析

字符编码转换好像出错了

解析器有权在任意位置分解文本节点,在多次调用 characters() 时传递文本。解析器在看到实体或字符引用时中断文本是很常见的,但这只是为了实现者的方便,并不能以任何方式保证。