gpt4 book ai didi

android - Robolectric:Android 中的 SAXParser 与 Java 中的 SAXParser(robolectric):localname 与 qname 的区别

转载 作者:行者123 更新时间:2023-11-29 00:32:46 26 4
gpt4 key购买 nike

我曾经使用 Android 单元测试运行我的单元测试,但后来切换到使用 Robolectric 的 Java 单元测试。我注意到使用 SaxParser DefaultHandler 的不同之处。基本上,Android sax 解析器会填充“localName”,但是当使用 Java VM 在 Robolectric 下运行时,localName 是空的,而且 qname 似乎包含我应该使用的值。

这也是我所指的方法:

import org.xml.sax.helpers.DefaultHandler;

public abstract class BaseParser extends DefaultHandler
{
@Override
public abstract void startElement(String uri, String localName, String qName, Attributes attributes);
}

还有其他人注意到这个奇怪的现象或可以修复它吗?

最佳答案

解析 xml 时,尝试将 SAXParserFactory 设置为命名空间感知。

SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);

在使用 Robolectric 运行单元测试时,添加此标志对我来说效果很好。

关于android - Robolectric:Android 中的 SAXParser 与 Java 中的 SAXParser(robolectric):localname 与 qname 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14391698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com