我试图解析来自不同来源(我对此几乎没有控制权)的xml文件。其中大多数都使用UTF-8编码,使用以下代码段不会造成任何问题:
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
FeedHandler handler = new FeedHandler();
InputSource is = new InputSource(getInputStream());
parser.parse(is, handler);
由于SAX默认为UTF-8,所以很好。但是,一些文档声明:
<?xml version="1.0" encoding="ISO-8859-1"?>
即使已声明ISO-8859-1,SAX仍默认为UTF-8。仅当我添加:
is.setEncoding("ISO-8859-1");
SAX将使用正确的编码。
如何让SAX自动从xml声明中检测正确的编码,而无需我专门进行设置?我需要这个,因为我事先不知道文件的编码是什么。
在此先感谢,艾伦
问题内容: 我正在从REST服务接收XML文档,该文档将使用SAX进行解析。请参见以下示例,它是从XSD生成的。 设置解析器不是问题。我的主要问题是在实际的处理,方法等,我不知道如何提取我需要的项目,并将其作为他们有些“嵌套”。 例 所述可发生一次或两次,并且可以包含任意数量的其-in了转向有关于一个连接的信息的元素。基本上,我需要与他们的所有连接的列表,和。我必须为每个元素创建一个类吗? 就我所
问题内容: 它很好用,但是我希望它返回一个包含所有字符串的数组,而不是最后一个元素返回一个字符串。 任何想法如何做到这一点? 问题答案: 因此,你想构建一个XML解析器来解析这样的RSS feed。 现在,你可以使用两个SAX实现。你可以使用org.xml.sax或android.sax实现。在发布简短的示例后,我将解释两者的优点和缺点。 android.sax Implementation 让我
问题内容: 它很好用,但是我希望它返回一个包含所有字符串的数组,而不是最后一个元素返回一个字符串。 任何想法如何做到这一点? 问题答案: 因此,你想构建一个XML解析器来解析这样的RSS feed。 现在,你可以使用两个SAX实现。你可以使用org.xml.sax或android.sax实现。在发布简短的示例后,我将解释两者的优点和缺点。 android.sax实现 让我们从实现开始。 你首先必须
主要内容:Java SAX解析器 解析XML文档的示例Java SAX解析器 解析XML文档的示例 需要解析的文件input.xml 编写DefaultHandler的事件处理程序 编写核心解析处理类 输出结果为:
首先,我认为这个错误是因为一个确切的文件。但是错误发生在不同的文件在不同的时间。如何使SAX解析器停止连接到Internet?
主要内容:Java SAX解析器 修改XML文档的示例Java SAX解析器 修改XML文档的示例 需要修改的文件input.xml 编写修改XML文档的解析处理类 控制台输出结果为: 在项目根目录下生成新的文件input-updated.xml,内容如下: