SAX解析器

时间:2015-09-23 12:10:54

标签: java xml sax

在使用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()方法只能使用索引调用特殊字符。我怎样才能克服此?

2 个答案:

答案 0 :(得分:2)

解析器有权在任何地方分解文本节点,通过多次字符调用()传递文本。解析器在看到实体或字符引用时打破文本是很常见的,但这只是为了实现者的方便而且无论如何都没有保证。

答案 1 :(得分:1)

<details>...</details>内,角色事件可能会被称为几个次,以提供一部分文字。

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

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

如果你有XML作为String,那么你已经有了Unicode。该文本应该已正确阅读。这可能是错误的。用读者解析。

字符编码转换似乎出错了。