XPath 및 HtmlCleaner를 사용하여 HTML을 구문 분석하는 방법을 배우고 있지만 문제가 있습니다. 이것은 코드입니다 :문제를 일으키는 XPath 사용
public class ScheudeleWithDesign extends Activity {
static final String urlToParse = "https://www.easistent.com/urniki/263/razredi/18221";
static final String xpathTableContents = "//div[@id='text11']";
TextView tw1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scheudele_with_design);
tw1 = (TextView) findViewById(R.id.urnikText);
String value = "";
value = new getScheudele().execute().toString();
tw1.setText(value);
}//End of onCreate
private class getScheudele extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
String stats = null;
//cleaner properties
HtmlCleaner cleaner = new HtmlCleaner();
CleanerProperties props = cleaner.getProperties();
props.setAllowHtmlInsideAttributes(false);
props.setAllowMultiWordAttributes(false);
props.setRecognizeUnicodeChars(true);
props.setOmitComments(true);
URL url;
try {
url = new URL(urlToParse);
TagNode root = cleaner.clean(url);
Object[] node = root.evaluateXPath(xpathTableContents);
//Vzemi podatke če najdeš element
if (node.length > 0) {
TagNode resultNode = (TagNode)node[10];
stats = resultNode.getText().toString();
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XPatherException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return stats;
}
}
그래서 저는 분명히 특정 데이터를 구문 분석하고 textview로 설정하려고합니다. 이 결과는 완전히 잘못된 것입니다,하지만 작동하지 않습니다 :
내 생각 엔 문제가 여기에 XPath에있는 것입니다 :
static final String xpathTableContents = "//div[@id='text11']";
이전에는 XPath로 작업 해본 적이 없으므로 그 부분을 망쳤다 고 확신합니다. This is the site 나는 그런 식으로 데이터를 구문 분석하려고합니다. 이 코드는 처음 시작할 때 하나의 테이블 요소 만 가져야합니다. 일단 어떻게해야하는지 알고 있으면 전체 테이블을 구문 분석합니다.
''// div [@ id = 'text11'] ''XPath는 t입니다. 'id' 속성이'text11' 인'div' 요소를 선택하려고 시도하지만, 참조 된 HTML 페이지에는 그러한 div 요소가 없습니다. (클래스 속성이'text11'으로 설정된 div 요소가 많이 있습니다.) 링크 된 HTML 페이지에서 선택할 데이터의 구체적인 예를 제공하면 XPath를 만드는 데 도움을 줄 수 있습니다. – kjhughes
@kjhughes 나는 여전히 XPath를 배우려고 노력하고 있지만, 나는 항상 내가 알지 못하는 새로운 것을 배우는 데 문제가있다. 어떤 테이블 내용을 선택하는 방법에 대한 예를 보여 주시겠습니까? 어떻게 든 구조를 가져올 수 있도록 원하는 테이블 내용에 대한 XPath 코드를 보여주십시오. 고맙습니다. 감사합니다. – Guy