-1

我在 java 中使用 SAXParse 来解析 xml 文件。我成功地使用其中一个文件做到了这一点,但我移至第二个文件并尝试读取我一直为空的属性。我已经想到了所有可能的原因,但我无法弄清楚。

这是一个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 回答