下的推解析方法中,推解析器生成的同步事件作为一个文件被解析,并且这些事件可以通过使用回调处理程序模型的应用程序进行处理
这是本书临XML开发使用Java给出关于SAX 2.0文本。
至于StAX的,书上说:
在拉的方法,事件从XML文档使用的解析器的应用程序的控制下拉出。
我想问一下,什么是高亮文本的含义是什么? 答案相称初学者理解:)
下的推解析方法中,推解析器生成的同步事件作为一个文件被解析,并且这些事件可以通过使用回调处理程序模型的应用程序进行处理
这是本书临XML开发使用Java给出关于SAX 2.0文本。
至于StAX的,书上说:
在拉的方法,事件从XML文档使用的解析器的应用程序的控制下拉出。
我想问一下,什么是高亮文本的含义是什么? 答案相称初学者理解:)
基本上,一推就是当解析器说一些处理,“我有一个Foo,用它做什么。” 一拉就是当处理程序说解析器,“给我下一个foo中。”
推:
if (myChar == '(')
handler.handleOpenParen(); // push the open paren to the handler
拉:
Token token = parser.next(); // pull the next token from the parser
推解析器 -事件是由API中的回调函数等startDocument(),调用endDocument()的形式生成并且超出程序员的控制。 我们作为一个程序员可以处理事件,但一代的事件是无法控制的。
拉出解析器 -事件,当我们调用一些API生成的。 下面示出实施例。 所以我们作为程序员可以决定何时生成事件。
int eventType = xmlr.getEventType();
while(xmlr.hasNext()){
eventType = xmlr.next();
//Get all "Book" elements as XMLEvent object
if(eventType == XMLStreamConstants.START_ELEMENT &&
xmlr.getLocalName().equals("Book")){
//get immutable XMLEvent
StartElement event = getXMLEvent(xmlr).asStartElement();
System.out.println("EVENT: " + event.toString());
}
}
,客户端只得到(拉)XML数据时,它确实需要它。
随着拉解析,客户端控制应用程序线程,并在需要时可以调用解析器方法。 相比之下,与推送处理,解析器控制应用程序线程,并且客户只能接受从解析器调用。
推解析:这是哪里的解析器推动解析事件给应用程序,最可能使用的回调方法。 应用程序可以调用任何解析器方法之后异步处理,因此,如果解析器需要不是在该点停留时间的应用程序。 一旦解析完成解析器,通过其回调事件将触发应用程序,以便应用程序可以进一步与解析结果继续。
拉解析:当应用程序提取数据一起,而不是等待解析事件。 应用程序可以由一个方式拉在一个数据,根据其要求。 像StAX的,应用程序调用next()方法iteretively获取XML格式的下一个结构。