2017-01-06 15 views
0

Полный новичок с Clojure. Как вы получаете доступ к мутированному документу jsoup в Clojure? У меня есть код ниже, где я хотел бы распечатать измененный html, а не удаляемые ссылки.Каков наилучший способ удаления элементов из документа JSoup в Clojure (совместимость с java mutable object)?

(defn get-page [] 
    (.get (org.jsoup.Jsoup/connect "https://example.com"))) 

(defn -main 
    "Fetch the page, delete links, and print out the html of the modified page" 
    [& args] 
    (let [html (get-page)] 
    (println (.remove (.select html "a[href]"))))) 
+1

Не печатает результат 'remove', вместо того, чтобы добавить еще одну строку в' let'-формы и '(Println html) '(или любой другой java-interop, который вам нравится). 'html' содержит объект, за которым вы находитесь. После того, как вы изменили его, он удерживает текущее состояние. – cfrick

+0

Спасибо cfrick. Вот и все. – Sully

ответ

1

@cfrick ответил на вопрос в комментарии, поэтому я просто расширю его, чтобы сделать его более понятным. Изменение

Давайте -main напечатать значение в html до и после того, как она изменилась

(defn -main 
    "Fetch the page, delete links, and print out the html of the modified page" 
    [& args] 
    (let [html (get-page)] 
    (println "html before modification") 
    (println html) 

    (.remove (.select html "a[href]")) 

    (println "html after modification") 
    (println html)))