Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检索最后一个标记';在android中使用sax解析器解析xml文件的内容?_Android - Fatal编程技术网

如何检索最后一个标记';在android中使用sax解析器解析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<

下面是我要解析的xml文件数据。我想得到最后一个标签,即
的内容。有人能帮忙吗

<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;
    }



}