- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
代码:
public void parse(byte[] payload)
{
try
{
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler()
{
boolean eid = false;
boolean msg_id = false;
boolean date_time = false;
boolean temp = false;
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
{
if (qName.equalsIgnoreCase("eid"))
{
eid = true;
}
if (qName.equalsIgnoreCase("msg_id"))
{
msg_id = true;
}
if (qName.equalsIgnoreCase("date_time"))
{
date_time = true;
}
if (qName.equalsIgnoreCase("temperature"))
{
temp = true;
}
}
public void characters(char ch[], int start, int length) throws SAXException
{
if (eid)
{
XMLMessagePacket.this.eid = new String(ch, start, length);
eid = false;
}
if (msg_id)
{
XMLMessagePacket.this.msgId = new String(ch, start, length);
msg_id = false;
}
if (date_time)
{
XMLMessagePacket.this.time = new String(ch, start, length);
date_time = false;
}
if (temp)
{
XMLMessagePacket.this.temperature.parseDouble(new String(ch, start, length));
temp = false;
}
}
};
saxParser.parse(new ByteArrayInputStream(payload), handler);
}
catch (Exception e)
{
e.printStackTrace();
}
}
XML
<?xml version="1.0"?>
<event>
<eid>345345</eid>
<msg_id>3242</msg_id>
<date_time>11342345</date_time>
<temperature>100</temperature>
</event>
问题:
org.xml.sax.SAXParseException:序言中不允许出现内容。
最佳答案
只是需要检查一下:一位 friend 曾经整夜与这个“bug”作斗争。您的文件是否有可能有 Byte Order Mark一开始?将其解析为字符串可能会使其消失。 XML 的默认编码是 UTF-8(不需要 BOM)。您可能会被看不见的东西绊倒。
关于Java 使用 Saxparser 导致抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14465747/
我曾经使用 Android 单元测试运行我的单元测试,但后来切换到使用 Robolectric 的 Java 单元测试。我注意到使用 SaxParser DefaultHandler 的不同之处。基本
我有一个 Java SAXparser,可以使用 parse(new InputSource(conn.getInputStream())) 下载和解析。不幸的是,有时在下载站点的 xml 时会出现错
我有一个java类,它解析xml文件,并将其内容写入MySQL。一切正常,但问题是当 xml 文件包含无效的 unicode 字符时,会引发异常并且程序停止解析文件。 我的提供商每天都会发送此 xml
我正在为 Android 开发 RSS 提要阅读器,并且为了解析 XML 文件,我使用 SAX API。问题是,在解析数据时,一些文本在一些随机选择的标签中以随机方式被截断(我的意思是同一标签的不同实
我有 xml 结构 id dataTitle title1 title2 我想解析它并仅将标题元素保存在条目下的列表中。如何在
我有一个 org.xml.sax.helpers.DefaultHandler 的实现,它工作正常,除非它出现这样的情况: Jiří Bárta 字符方法被重写为: @O
如果我在 ansi xml 文件中放入一个 utf8 字符 » 并尝试使用 SAXParser 解析它,那么它的解析不会出现任何错误。为什么它没有抛出任何异常? 示例 xml 文件。保存为ansi编码
这很奇怪.. 我有一个 DefaultHandler,它实际上可以很好地处理所有事情,但有时,没有明显的原因,它会给我 0 而不是正确的值。这种情况每次都在同一个地方发生,所以有问题,但我不知道是什么
我在 android/java 上用 SAXParser 等做一些简单的 SAXParsing 它可以正确解析文件,但是当它遇到一些特殊字符时会打嗝,例如如果它解析下面这个 xml: 当它在
我正在尝试构建我的第一个 XML 模式 validator 作为我的代码库和许多项目中的可重用组件。我花了一整天的时间尝试遵循示例并对其进行编码,现在已经启动并运行了概念验证。 唯一的问题是,它给了我
我正在使用 saxparser 来从文件中获取 xml 标签内容。对于非长数据 xml,一切正常。然而,当到达某个位置时,characters() 事件收到截断的 ch[] 并被触发两次。例如,123
我在 Android 应用程序中使用 SAX 解析器一次读取一些提要。脚本执行如下。 // Begin FeedLezer
我有以下格式的 XML: ... "Paul McCartney" "John Lennon" ... SAXParser 一旦到达电子邮件地址就会抛出异常。它认为是一个 XML 元素,一旦遇到
我在 Java 中使用 SAXParser。 有没有办法在使用 SAXParser 解析 xml 时关闭转义? 例如,我有以下 xml: „title” 我想通过c
我正在查看http://docs.oracle.com/javaee/1.4/tutorial/doc/JAXPSAX9.html 。 您可以通过两种方式将 xml 文件与架构关联起来:在应用程序中或
我正在开发一个小型应用程序,该应用程序使用 xml 文件来打印章节的 ArrayList,后者又指向特定的 html 文件。 我使用本教程开始:http://www.anddev.org/novice
我正在向 SAXParser 传递一个 XML 文件和一个处理程序,但收到此错误: parse 方法的属性定义为 (File, DefaultHandler) ,它完全匹配,所以我不确定哪里出错了。完
我需要使用一组模式对传入的 XML 片段执行一些验证。 所有这些架构共享相同的 targetNamespace,但分为不同的 .xsd 文件。 我的java程序正在将每个xsd文件加载到InputSo
我不知道如何正确表达这个问题,但我会举一个例子。 假设我想知道标签block的属性type我可以 if (localName == "block") { int type = Integer
PARAMETRI: vrednost: 2.0 rank: 0.75 − objekt: irc.kis.model.pomozniRazredi.CasovniInterval.CasovniI
我是一名优秀的程序员,十分优秀!