如何检索最后一个标记';在android中使用sax解析器解析xml文件的内容?
下面是我要解析的xml文件数据。我想得到最后一个标签,即如何检索最后一个标记';在android中使用sax解析器解析xml文件的内容?,android,Android,下面是我要解析的xml文件数据。我想得到最后一个标签,即的内容。有人能帮忙吗 <MSPDB><COMPANYNO>01</COMPANYNO><SALESPERSON>01101</SALESPERSON><MAPNO>5</MAPNO><CUSTOMERNO>1</CUSTOMERNO><ORDERNO>1</ORDERNO><QUOTENO>1<
的内容。有人能帮忙吗
<MSPDB><COMPANYNO>01</COMPANYNO><SALESPERSON>01101</SALESPERSON><MAPNO>5</MAPNO><CUSTOMERNO>1</CUSTOMERNO><ORDERNO>1</ORDERNO><QUOTENO>1</QUOTENO><LASTINVOICENO>1</LASTINVOICENO><RECEIPTNO>8</RECEIPTNO></MSPDB>
如果您只需要RECEIPTNO标记的值,并且确定只有一个,那么使用sax解析器就太过分了。只需使用.indexOf(“”)和.indexOf(“”),然后使用.substring()。@greenapps:u能否详细说明如何以及在何处使用.indexOf()和.substring()?只需将它们应用于您调用xml文件数据的字符串。。您能给出准确的代码吗?
String FILE_NAME = "Mspdb.xml";
File file=new File(Supporter.getAppCommonPath(),FILE_NAME);
FileInputStream stream;
try {
stream = new FileInputStream(file);
String[] result=parseDocument(stream);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
public String[] parseDocument(InputStream stream)
{
String[] resultArray=new String[8];
String result="";
SAXParserFactory parserFactory=SAXParserFactory.newInstance();
try {
SAXParser parser=parserFactory.newSAXParser();
XMLReader reader=parser.getXMLReader();
Xmlhandler handler=new Xmlhandler();
reader.setContentHandler(handler);
InputSource inputSource = new InputSource();
inputSource.setEncoding("UTF-8");
inputSource.setByteStream(stream);
reader.parse(inputSource);
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
result=resultArray[7];
return resultArray;
}
class Xmlhandler extends DefaultHandler
{
private String tempVal;
private String receiptNo;
private String value;
@Override
public void startDocument() throws SAXException {
// TODO Auto-generated method stub
super.startDocument();
}
@Override
public void endDocument() throws SAXException {
// TODO Auto-generated method stub
super.endDocument();
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
// TODO Auto-generated method stub
value="";
tempVal="";
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
// TODO Auto-generated method stub
System.out.println("Value:" + tempVal);
System.out.println("End:" + localName);
if(localName.equalsIgnoreCase("RECEIPTNO"))
{
receiptNo=tempVal;
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
// TODO Auto-generated method stub
value=new String(ch, start, length);
tempVal=value+tempVal;
}
}