을 사용하는 경우 String dataread = se.getElementText();
을 설정합니다. 그 문자열 (dataread)을 즉시 인쇄하고 있습니다.StAX 구문 분석 예제에서 루프 외부의 문자열 변수
그러나 내 코드의 다른 곳에서는 작동하지 않으며 심볼 dataread
을 찾을 수 없다고보고합니다. 코드로 넘어가는 5 개의 다른 지점이 시도되는 것을 보게 될 것입니다. if 문 내의 첫 번째 행이 작동합니다.
"dataread"라는 문자열을 프로그램의 다른 곳에서 어떻게 사용할 수 있습니까?
감사
public static void main(String[] args) throws FileNotFoundException, XMLStreamException
{
// TODO code application logic here
//System.out.println("Here");
//String filename = null;
String filename = "BookCatalog2.xml";
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLEventReader reader = factory.createXMLEventReader(new FileReader(filename));
while(reader.hasNext())
{
XMLEvent event = reader.nextEvent();
XMLEvent nextEvent = reader.peek();
switch (event.getEventType())
{
case XMLEvent.START_ELEMENT:
StartElement se = event.asStartElement();
//System.out.println("Here");
//System.out.print("<" + se.getName());
//System.out.print(" " + se.getName());
//System.out.printf("\n");
String elem = se.getName().toString();
//String elem = "1";
//System.out.printf("elem = %s\n",elem);
//String ele = event.getAttributeName();
System.out.printf("event = %s\n",se.getName());
//if(se.getName().toString() == "{http://www.publishing.org}Date")
if(se.getName().toString().equals("Date"))
//if(elem == "1")
{
System.out.println("Here !!!!!!!!!!!!!!!!!");
String dataread = reader.getElementText();
//System.out.printf("data = %s\n",reader.getElementText());
System.out.printf("data = %s\n",dataread);
}
Iterator attributes = se.getNamespaces();
System.out.printf("DATA READ = %s\n",dataread);
while(attributes.hasNext())
{
Attribute attr= (Attribute)attributes.next();
System.out.print(" " + attr.getName() + "=\"" +attr.getValue() +"\"");
System.out.printf("\n");
}//end while loop
System.out.print(">");
if(nextEvent.isCharacters())
{
Characters c = reader.nextEvent().asCharacters();
if(!c.isWhiteSpace())
System.out.print(c.getData());
System.out.printf("\n");
}// end if
System.out.printf("DATA READ = %s\n",dataread);
/*case XMLEvent.END_ELEMENT>
EndElement ee = event.asEndElement();
System.out.print("</"+ee.getName()+">");
break;
* */
System.out.printf("DATA READ = %s\n",dataread);
}// end witch
System.out.printf("DATA READ = %s\n",dataread);
}// end while
System.out.printf("DATA READ = %s\n",dataread);
reader.close();
}//end Main
}// public claSS