我正在尝试使用Jsoup从网站解析字符串并编写以下测试以验证解析
这是我的测试:
@Test
public void extractBookData() throws Exception {
String bookLink = ""; //some address
Document doc = Jsoup.connect(bookLink).get().html();
Book book = new Book();
assertEquals("Literatür Yayıncılık", book.getPublisher(doc));
}
这是getPublisher(Element)
方法:
public String getPublisher(Element element){
String tableRowSelector = "tr:contains(Yayınevi)";
String tableColumnSelector = "td";
String tableRowData = "";
element = element.select(tableRowSelector).last();
if (element != null) {
element = element.select(tableColumnSelector).last();
if (element != null) {
tableRowData = element.text().replaceAll(tableRow.getRowName() + " ?:", "").replaceAll(tableRow.getRowName() + " :?", "").replaceAll(" ?: ?", "").trim();
}
}
return tableRowData;
}
问题在于,即使JUnit另有说明,实际和预期的字符串也是一样的。
我愿意接受你的建议。
答案 0 :(得分:2)
之前我遇到过同样的问题,这是一个不间断的空间(char 160),它在你的文本而不是空格(char 32)。在我的情况下,文本来自一个HTML文本输入值,你的看起来像他也来自HTML。
我使用的解决方案也是用空格替换所有非破坏空间字符。