这是有用的代码部分:
java.util.List<Element> elems = src.getAllElements();
Iterator it = elems.iterator();
Element el;
String key,value,date="",place="";
String [] data;
int k=0;
Segment content;
String contentstr;
String classname;
while(it.hasNext()){
el = (Element)it.next();
if(el.getName().equals("span"))
{
classname=el.getAttributeValue("class");
if(classname.equals("edit_body"))
{
//java.util.List<Element> elemsinner = el.getChildElements();
//Iterator itinner = elemsinner.iterator();
content=el.getContent();
contentstr=content.toString();
if(true)
{
System.out.println("Done!");
System.out.println(classname);
System.out.println(contentstr);
}
}
}
}
没有任何输出。但是如果我删除 if(classname.equals("edit_body"))
条件,它会在其中一个迭代中打印:
Done!
edit_body
"I honestly think it is better to be a failure at something you love than to be a success at something you hate."
我无法理解bug的部分...请帮忙!
顺便说一下,我正在使用一个外部的Java库来解析HTML。
另外,在输出的开头有两个错误,这两种情况都存在,无论是否使用if条件语句。
Dec 20, 2012 11:53:11 AM net.htmlparser.jericho.LoggerProviderJava$JavaLogger error SEVERE: EndTag br at (r1992,c60,p94048) not recognised as type '/normal' because its name and closing delimiter are separated by characters other than white space
Dec 20, 2012 11:53:11 AM net.htmlparser.jericho.LoggerProviderJava$JavaLogger error SEVERE: Encountered possible EndTag at (r1992,c60,p94048) whose content does not match a registered EndTagType
希望这不会引起错误。
好的,大家,请有人给我解释一下!"edit_body".equals(el.getAttributeValue("class")) 这个代码有效!!
System.out.println(el.getName())
。 - Raekyesrc.getAllElements
会正常工作并输出迭代器。getName()会以字符串形式返回标签的名称...http://jericho.htmlparser.net/docs/javadoc/index.html很明显,我不认为equals方法有问题或JAVA API有问题,否则我就不会寻求您的帮助了。问题的标题是我能想到的最接近的短语! - arkanath"edit_body".equals(el.getAttributeValue("class"))
行了!!BAZINGA!! - arkanath