java - 在循环外使用字符串变量

标签 java string stax

在 StAX 解析示例中,我正在设置 String dataread = se.getElementText();。 我立即成功打印了该字符串 (dataread)。

但是,在我的代码中的其他任何地方,它都不起作用,它报告找不到符号 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

最佳答案

你的字符串在你的第一个IF的范围内,你必须在方法的开头声明它。

尝试在 String filename = "BookCatalog2.xml"; 之后声明

例如:

String filename = "BookCatalog2.xml";
String dataread = "";

关于java - 在循环外使用字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15158733/

相关文章:

java - 为什么 AspectJ 会生成一个空的 Annotation 检查?

java - Hibernate适合的继承策略

java - Voip电话在android中开发

java - StringBuilder 在转换为 String 时丢失数据

Java正则表达式与两个条件混淆

android - 是否有适用于 Android 的 StAX 实现?

java - 是否可以检查 Informix 表是否有主键

iphone - 从 NSURL 中获取字符串

java - 如何使用 StaX 获取特定 XML 标记的值

java - 如何使用 StAX 将属性添加到 XML 节点?