خطأ في الطريقة غير قابل للتطبيق باستخدام Jsoup في كود Java المخصص

StackOverflow https://stackoverflow.com//questions/25039543

  •  21-12-2019
  •  | 
  •  

سؤال

أواجه مشكلات في استخدام Jsoup في ملف tJavaRow مكون في Talend.

هنا وظيفتي:

Job Layout

خلال tLibraryLoad أقوم بتحميل .jar ملفات Jsoup ومكتبة java.io.File ثم قم باستيرادها إلى ملف tJavaRow_2 عنصر:

import java.io.File;
import java.io.File;
import org.jsoup.Jsoup;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import org.jsoup.select.Elements;

ثم حاول تشغيل الكود التالي في الجزء الرئيسي من الملف tJavaRow_2:

Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt", "utf-8");
Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt", "utf-8");
        Elements el = document.select(".gutter10");
        Elements el = document.select(".gutter10");
        String result = el.text();
        String result = el.text();


        if(result.length() > 20)
        if(result.length() > 20)
            {context.lastpage = true;};

يبدو منطقيا بالنسبة لي حتى الآن.لكني أتلقى هذا الخطأ:

Talend Error

هل يمكنك مساعدتي في حل هذه المشكلة؟لا أفهم ماذا أفعل من هذه النقطة فصاعدًا.

زائدة:كود جافا الذي يعمل في Eclipse:

import java.io.File;
import java.io.File;
//import java.util.regex.*;
import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

public class regextest  {

    public static boolean regExChecker() throws IOException 
    {
        boolean x = false;
        Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/absolventa_testquery.txt"), "utf-8");
        Elements el = document.select(".gutter10");
        String result = el.text();

        if(result.length() > 20)
            {x = true;};

        //System.out.println(x);
        return x;
    }

    public static void main(String[] args) throws IOException{
        System.out.println(regExChecker()); 
    }
}
هل كانت مفيدة؟

المحلول

أنت تفتقد قوس الإغلاق في كتلة التعليمات البرمجية الخاصة بك.يجب أن يكون السطر الأول الخاص بك:

Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8");

كما هو الحال، فأنت تقوم بإنشاء ملف من المسار "C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8" ثم قم فقط بتمرير كائن الملف هذا (لن يكون كائن ملف مناسبًا ولكن لسبب ما لم يرصد المترجم ذلك) إلى طريقة التحليل الخاصة بـ Jsoup.

انظر الى وثائق Jsoup استدعاء الأسلوب الوحيد للتحليل الذي يمثل قيمة واحدة هو عندما تقوم بتمرير مستند HTML في سلسلة إليه.لذلك فهو يتوقع سلسلة ويحصل بدلاً من ذلك على ملف (مكسور).

الخطأ الثاني هو الذي يشير حقًا إلى ذلك بالقول أنك تفتقد قوس إغلاق لـ VariableInitializer.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top