if语句从XML树中读取属性值时提供帮助

时间:2013-09-25 02:36:02

标签: java string if-statement

我试图从树中读取名为“version”的属性的值。它的值是“2.0”。我设置了一个if语句,询问属性值是否等于2.0来运行此代码,而不是运行else语句。我很困惑,我做了一个布尔值,并将其设置为等式。我把它打印出来,当它确实是真的时它会读出来。这是我的代码:

out.print("Enter the URL of an RSS 2.0 news feed: ");
        String url = in.nextLine();
        XMLTree xml = new XMLTree1(url);
        boolean t = xml.hasAttribute("version");
        if (t) {
         out.println(xml.attributeValue("version"));//this prints 2.0
         boolean a = (xml.attributeValue("version") == "2.0"); //added this to debugg
         out.println(a);  //this gets set to false. why?
            if (xml.attributeValue("version") == "2.0") {


                out.println("Hello");

            } else {
                out.println("URL entered is not of version 2.0");
            }
        } else {
            out.println("No attribute Version");
        }

        /*
         * TODO: fill in body
         */

        in.close();
        out.close();
    }

}

我输入了网址: http://news.yahoo.com/rss/ ,其树的根标记为“rss”,其属性“version”等于2.0:

1 个答案:

答案 0 :(得分:1)

改变这个:

boolean a = (xml.attributeValue("version") == "2.0");
. . .
if (xml.attributeValue("version") == "2.0") {

为:

boolean a = (xml.attributeValue("version").equals("2.0"));
. . .
if (xml.attributeValue("version").equals("2.0")) {

Java中的==运算符测试对象标识,而不是值相等(这就是你需要的)。