29 lines
901 B
Text
29 lines
901 B
Text
|
|
#!/usr/bin/env bash
|
||
|
|
|
||
|
|
set -eo pipefail
|
||
|
|
|
||
|
|
export BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {org.clojure/data.zip {:mvn/version "1.0.0"}}}' -Spath)"
|
||
|
|
|
||
|
|
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||
|
|
BB_CMD="./bb"
|
||
|
|
else
|
||
|
|
BB_CMD="lein bb"
|
||
|
|
fi
|
||
|
|
|
||
|
|
$BB_CMD --verbose "
|
||
|
|
(require '[clojure.data.xml :as xml])
|
||
|
|
(require '[clojure.zip :as zip])
|
||
|
|
(require '[clojure.data.zip.xml :refer [text attr attr= xml-> xml1-> text=]])
|
||
|
|
|
||
|
|
(def data (str \"<root>\"
|
||
|
|
\" <character type=\\\"person\\\" name=\\\"alice\\\" />\"
|
||
|
|
\" <character type=\\\"animal\\\" name=\\\"march hare\\\" />\"
|
||
|
|
\"</root>\"))
|
||
|
|
|
||
|
|
;(prn :data data)
|
||
|
|
(let [xml (zip/xml-zip (xml/parse (java.io.StringReader. data)))]
|
||
|
|
;(prn :xml xml)
|
||
|
|
(prn :alice-is-a (xml1-> xml :character [(attr= :name \"alice\")] (attr :type)))
|
||
|
|
(prn :animal-is-called (xml1-> xml :character [(attr= :type \"animal\")] (attr :name))))
|
||
|
|
"
|