【问题标题】:Character() method in SAX parserSAX 解析器中的 Character() 方法
【发布时间】:2015-09-23 12:10:54
【问题描述】:

在使用 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() 方法只调用特殊字符的索引。我该如何克服这个问题?

【问题讨论】:

    标签: java xml sax


    【解决方案1】:

    解析器有权在任何它喜欢的地方分解文本节点,通过多次调用 characters() 来传递文本。解析器在看到实体或字符引用时破坏文本是很常见的,但这只是为了实现者的方便,并不能以任何方式保证。

    【讨论】:

      【解决方案2】:

      &lt;details&gt;...&lt;/details&gt; 中,字符事件可能会被调用多次 次以提供部分文本。

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

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

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

      字符编码转换好像出错了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-12
        • 2012-04-27
        相关资源
        最近更新 更多