This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-03-17
Channels
- # bangalore-clj (1)
- # beginners (23)
- # boot (141)
- # cider (68)
- # cljs-dev (29)
- # cljsjs (1)
- # cljsrn (11)
- # clojure (150)
- # clojure-austin (3)
- # clojure-berlin (1)
- # clojure-france (2)
- # clojure-greece (13)
- # clojure-italy (5)
- # clojure-russia (49)
- # clojure-spec (15)
- # clojure-uk (45)
- # clojurescript (152)
- # code-art (1)
- # core-async (75)
- # cursive (12)
- # datascript (2)
- # datomic (90)
- # dirac (5)
- # emacs (10)
- # garden (1)
- # hoplon (52)
- # instaparse (4)
- # juxt (2)
- # lein-figwheel (2)
- # lumo (47)
- # mount (94)
- # off-topic (20)
- # om (21)
- # onyx (14)
- # parinfer (19)
- # pedestal (3)
- # protorepl (13)
- # re-frame (5)
- # reagent (20)
- # slack-help (10)
- # spacemacs (8)
- # specter (57)
- # unrepl (11)
- # untangled (3)
- # vim (1)
- # yada (1)
чота поигрался в репле с clojure1.9-альфа15 которая вышла 3 дня назад. Я надеялся что вся стандартная либа будет покрыта спекой, но чота в clojure.core
нету вообще ничо со спекой. Пeчалька 😢
Привет, подскажите пожалуйста, получил response от API, получил мапу с помощью clojure.data.xml. Есть ли короткий способ достать от корня где-то там глубоко вложенный элемент, вместо того чтобы городить огород вроде такого
(-> somexml
:content
:tag :sometag
:content
: tag
...
зипперы самое то, получиться (xml-> node :rss :tag :item :link)
http://clojure.github.io/data.zip/ документация тока говно, не могу найти примера нормального
вот я зипы видел, но тоже не нащел толкового объяснения, хочется еще понять кроме простого примера.
сча накидаю, там просто на самом деле
ну или вот этот всеобъемлющий туториал возьми http://blog.korny.info/2014/03/08/xml-for-fun-and-profit.html
пробовал еще xml-sax использовать, но так и не въехал почему она кидает Exception если прошу вернуть мне в виде :json ли :clj-map. Мол missing ; видимо когда встречает такие штуки &utm в строках...
неа, лень накидывать, но там просто, реально. Добавляешь [org.clojure/data.zip “0.1.2”]
, затем из своего XML объекта делаешь зиппер через (def node (clojure.zip/xml-zip (parse-str xml)))
ну а дальше уже делаешь запросы какие надо по типу (clojure.zip/xml-> node :rss :tag :item :link)
полный пример получится вот так
(clojure.data.zip.xml/xml-> (clojure.zip/xml-zip (parse-str xml)) :rss :tag :item :link clojure.data.zip.xml/text)
я все явно указал ибо очень часто по началу ошибки с неймспейсами. parse-xml как я помню реализован в 2 неймспесах, по началу можно час потерять пока раздуплишь чо да как
да вроде нет проблем с неймспейсами, я их как :as написал, и использую типа xml/parse-str и zip/xml-zip
или xml-zip
вроде. Ну если не наступишь на грабли дак это тока хорошо 🙂
в общем всячески рекомендую зипперы для работы с XML. XPath после него кажется ужасной поделкой, уже год все парсю тока ими 🙂
второй уровень зипперов это когда надо создавать/менять XML, тут я вообще хз с чем сравнивать, мега круто. Ну и опять же они могут работать с любой древовидной структурой, у меня парсинг больших JSON на нем, иногда просто мапы мапов удобно с ними обрабатывать и прочее
почему-то отказывается работать с xml->
[clojure.data.zip :as datazip]
...
(datazip/xml-> :rss :channel :item :link)
ты забыл зиппер ноду первым аргументом
(defn get-links
" Get/Parse link from XML "
[response]
(-> response
:body
(xml/parse-str)
(zip/xml-zip)
(datazip/xml-> :rss :channel :item :link)))
@lens покажь require
наверное, я всё что делал - на коленке бадди использовал, год назад
(ns foo.auth
(:require
[buddy.hashers :as ha]
[buddy.sign.jws :as jws]
[buddy.sign.util :as bu]
@lens а все, надо clojure.data.zip.xml/xml->
а у тебя clojure.data.zip/xml->
Парни, так и должно быть с re-frame'мом 2мб весит скомпиленый js в advanced режиме?
@nicola давай в личку
Народ, есть вакансия Re-frame разработчика (удаленка, full-time). Проект типа shoppify, clickfunnels. Бекенд Django, фронтенд Reagent/Re-frame. Обязательно: - уровень скилла Reagent/Re-frame — миддл и выше (джун уже есть); - наличие более одного проекта по специальности - pet, commercial — не важно, главное, чтобы можно было потрогать; - письменный английский. Опционально: - знание или опыт с Python/Django; - разговорный английский. Заказчик импотрный (Америка), оплата через Upwork. Начинаем сразу же, длительность от 2 мес. Подробности в личке.
@dottedmag спасибо, закину. написал сюда, чтобы охватить только русскоговорящих девов
@niwinz а bide решает как-то проблему с двойным navigate событием? (https://github.com/google/closure-library/issues/681)