Я хочу объединить результаты трех запросов фильтра zip на дереве XML. XML, который я анализирую, похож на это:
<someroot>
<publication>
<contributors>
<person_name>
<surname>Surname A</surname>
</person_name>
<person_name>
<given_name>Given B</given_name>
<surname>Surname B</surname>
<suffix>Suffix B</suffix>
</person_name>
</contributors>
</publication>
</someroot>
От этого примера Вы видите это <given_name>
и <suffix>
являются дополнительными - только <surname>
требуется. Здесь во лжи моя проблема - если я выполняю три отдельных запроса ответы, которые я получаю, будет в беспорядке друг с другом:
(xml-> xml :publication :contributors :person_name :given_name text)
(xml-> xml :publication :contributors :person_name :surname text)
(xml-> xml :publication :contributors :person_name :suffix text)
После выполнения этих трех запросов меня оставят с тремя последовательностями, кардинальность которых не соответствует; given_name
и suffix
будет длина 1 в то время как surname
будет длина 2. Это лишает возможности меня комбинировать компоненты каждого имени. Я должен записать единый запрос, который выполнит эту конкатенацию имени во время конструкции последовательности.
Я смотрю на очень редкую документацию для clojure.contrib.zip-filter.xml
и не может выяснить, как я мог сделать это (или если это даже возможно). К сожалению, я - Clojure (и Lisp) новичок! Кто-либо может указать, как я могу записать запрос, который свяжет три других встроенных запроса?
Вы можете получить все поддельники человека на одном шаге (XML-> XMLZIP: публикация: вкладчики: Person_Name) Затем получите имени деталей, если они существуют (XML1-> Personzip: фамилия текста) и комбинируйте их в результате, который вы хотите Вроде так:
(use 'clojure.contrib.zip-filter.xml)
(defn format-name
[surname given suffix]
(str surname (if given (str ", " given)) (if suffix (str ", " suffix))))
(defn get-names
[xz]
(map (juxt
#(xml1-> % :surname text)
#(xml1-> % :given_name text)
#(xml1-> % :suffix text))
(xml-> xz :publication :contributors :person_name)))
(let [x (clojure.zip/xml-zip (clojure.xml/parse "foo.xml"))]
(map (partial apply format-name) (get-names x)))
приводит к («Фамилия« Фамилия b, данная b, суффикс b »)
Я предпочитаю устанавливать свои CSS в файл CSS, а затем «AddClass», но даже так, ваш код (часть)
$('select').blur(function(){
$(this).css({
'position' : 'relative',
'width' : original_width
});
});
$('select').blur(function(){
$(this).css({
'position' : 'relative',
'width' : original_width
});
});
, кажется, является дубликатом
, я бы сделал это:
$('select').blur().css({
'position' : 'relative',
'width' : original_width
});
не уверены, что вы действительно Даже нужен .blur () Вот что с событием .Change () (попробуйте выбрать его, см., Если это решает вашу проблему ... Я использую выбирать часто на IE, и, кажется, не имею проблемы.
-121--1428695-Я полагаю, что альтернативное решение состоит в
(xml-> xml :publication :contributors :person_name)
, а затем обрабатывать каждый
позже.