我试图从树中读取名为“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:
答案 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中的==
运算符测试对象标识,而不是值相等(这就是你需要的)。