Java 在JAXB反序列化/序列化期间获取进度信息
有没有办法在JAXB Marshaller和Unmarshaller上注册一些进度监视器? 我想在数据反序列化时在GUI中显示一些进度信息 我发现您可以设置Java 在JAXB反序列化/序列化期间获取进度信息,java,xml,jaxb,Java,Xml,Jaxb,有没有办法在JAXB Marshaller和Unmarshaller上注册一些进度监视器? 我想在数据反序列化时在GUI中显示一些进度信息 我发现您可以设置解组器.Listener和封送器.Listener,它们有一个“before”和“after”方法。然而,我看不到任何直接的方法来获取要序列化的元素总数 显然,我需要它来计算一些“完成百分比”信息。在解组之前可以解析吗 如果是这样的话,假设你有一个对象列表,你可以做一些像 final String tagName = *** name
解组器.Listener
和封送器.Listener
,它们有一个“before”和“after”方法。然而,我看不到任何直接的方法来获取要序列化的元素总数
显然,我需要它来计算一些“完成百分比”信息。在解组之前可以解析吗 如果是这样的话,假设你有一个对象列表,你可以做一些像
final String tagName = *** name of tag you are counting ***;
InputStream in = *** stream of your xml ***;
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser saxParser = spf.newSAXParser();
final AtomicInteger counter = new AtomicInteger();
saxParser.parse(in, new DefaultHandler() {
@Override
public void startElement (String uri, String localName, String qName, Attributes attributes) {
if (localName.equals(tagName))
counter.incrementAndGet();
}
});
这可能是一个解决办法。我该怎么办?我的标记名在xml树中不是唯一的?然后对照一组名称而不是单个名称进行检查。编组是否类似?