我编写了一个程序来解析XML文件,以获取一个名为SerialNum的特定标记值,该值包含在Header标记中.该文件构造如下:
我使用Stax解析器来获取SerialNum值,我编写了这段代码:
public String findIdValue(HttpServletRequest request) {
String serialNumberValue = null;
if(request != null){
ServletInputStream servletInstream;
try {
servletInstream = request.getInputStream();
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader xmlStreamReader = factory.createXMLStreamReader(servletInstream);
//begin parsing if we get <Header>
//end parsing if we get <Header/> or </Header>
int event = xmlStreamReader.getEventType();
boolean enableToParse = false;
boolean gotSerialNumber = false;
boolean parseComplete = false;
while( (xmlStreamReader.hasNext()) && (!parseComplete) ){
switch(event) {
case XMLStreamConstants.START_ELEMENT:
if("Header".equals(xmlStreamReader.getLocalName())){
//tag is header, so begin parse
enableToParse = true; …Run Code Online (Sandbox Code Playgroud)