我在java中使用SAXParse来解析xml文件。我已成功地使用其中一个文件执行此操作,但我移动到第二个文件并尝试读取一直保持为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
答案 0 :(得分:0)
String OrderNum
在main()
方法中被声明为局部变量,它应该是一个类成员变量,而不是ReadXML.startElement()
中可访问的。