xmlツリーで3つのzipフィルタークエリの結果を組み合わせたいと思います。私が解析している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>
あり、必須であることがわかります。ここに私の問題があります-3つの別々のクエリを実行すると、私が得る応答は互いにキルターから外れます:<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)
これらの3つのクエリを実行した後、カーディナリティが一致しない3つのシーケンスが残ります。長さは1、長さは2given_name
になります。これにより、各名前のコンポーネントを組み合わせることができなくなります。シーケンス構築中にこの名前の連結を実行する単一のクエリを作成する必要があります。suffix
surname
私はの非常にまばらなドキュメントを見ていますclojure.contrib.zip-filter.xml
が、これをどのように行うことができるか(またはそれが可能かどうか)を理解できません。残念ながら、私はClojure(およびLisp)の初心者です!他の3つの埋め込みクエリを連結するクエリを作成する方法を誰かが指摘できますか?