-1

JavaでSAXParseを使用してxmlファイルを解析しています。ファイルの1つでこれを正常に実行できましたが、2番目のファイルに移動して、nullになり続けた属性を読み取ろうとしました。考えられるあらゆる原因を考えましたが、それを理解することはできません。

xml ファイルのサンプルを次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<ProcessorStatusCode/>
<StatusCode>E</StatusCode>
   <ErrorNo>1852</ErrorNo>...

そして、ここに私のJavaコードがあります:

public class ReadXML
{
    public static void main(String[] args) throws IOException,SAXException,                      ParserConfigurationeException
    {
        String OrderNum;
        SAXParserFactory parser = SAXParserFactory.newInstance();
        SAXParser Sparser = parser.newSAXParser();
        ReadXML handler = new ReadXML();
        Sparser.parse("ErrorDescription.xml",handler);
     }

    public void characters(char[] buffer,int start,int length)
    {
        temp = new String(buffer, start, length);
    }

    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
    {
        temp = " ";
        if(qName.equalsIgnoreCase("ErrorNo"))
        {
            //transaction = new Transaction();
            OrderNum = attributes.getValue(ErrorNo);
        }        
    }

    public void endElement(String uri, String localName, String qName) throws SAXException
    {
        if(qName.equalsIgnoreCase("ErrorNo"))
        {
            System.out.println(OrderNum);
        }

    }
}//end of class
4

1 に答える 1

0

String OrderNumメソッドでローカル変数として宣言されているmain()場合、 でアクセスできるようにするには、クラス メンバー変数にする必要がありますReadXML.startElement()

于 2013-07-11T22:31:21.723 に答える