btx/xml tree - entry with missing field
Hello I use the xml interface to list all publications that dont match a search criteria: /field[@name='keywords' and not (contains(text(),'alpha'))] but there are entries where the keywords field is missing. how can I include them (here "test-3") in the output? Thanks Michael -------------------------- \startbuffer[bib] @article{test-1, title = {Article One}, author = {A. Foo and X. Bar}, year = {2001}, keywords = {alpha}, } @book{test-2, title = {Book Two}, author = {B. Foo}, year = {2002}, keywords = {beta}, } @whatever{test-3, title = {Book Three}, author = {C. Foo}, year = {2003}, } \stopbuffer \usebtxdataset [database] [bib.buffer] \convertbtxdatasettoxml [database] \startxmlsetups btx:tag \hbox{\xmlatt{#1}{tag}} \stopxmlsetups \startxmlsetups btx:demo \xmlfilter {#1} { /bibtex /* /field[@name='keywords' and not (contains(text(),'alpha'))] /.. /command(btx:tag) } \stopxmlsetups \starttext \xmlsetup{btx:database}{btx:demo} \stoptext Michael Eidenbenz / Senior Researcher eidenbenz@arch.ethz.ch mailto:eidenbenz@arch.ethz.ch Phone +41 44 632 33 46 Chair of Architecture and Building Process ETH Zurich / Building HIB / Floor E / Room 33 Stefano-Franscini-Platz 1 / CH-8093 Zurich www.bauprozess.arch.ethz.ch http://www.bauprozess.arch.ethz.ch/ / ITA Institute of Technology in Architecture Faculty of Architecture / ETH Zurich www.ita.arch.ethz.ch http://www.ita.arch.ethz.ch/
On 12/22/2016 6:06 PM, Michael Eidenbenz wrote:
Hello
I use the xml interface to list all publications that dont match a search criteria:
/field[@name='keywords' and not (contains(text(),'alpha'))]
but there are entries where the keywords field is missing. how can I include them (here "test-3") in the output?
Thanks Michael
--------------------------
\startbuffer[bib]
@article{test-1, title = {Article One}, author = {A. Foo and X. Bar}, year = {2001}, keywords = {alpha}, }
@book{test-2, title = {Book Two}, author = {B. Foo}, year = {2002}, keywords = {beta}, }
@whatever{test-3, title = {Book Three}, author = {C. Foo}, year = {2003}, }
\stopbuffer
\usebtxdataset [database] [bib.buffer] \convertbtxdatasettoxml [database]
\startxmlsetups btx:tag \hbox{\xmlatt{#1}{tag}} \stopxmlsetups
\startxmlsetups btx:demo \xmlfilter {#1} { /bibtex /* /field[@name='keywords' and not (contains(text(),'alpha'))] /.. /command(btx:tag) } \stopxmlsetups
\starttext \xmlsetup{btx:database}{btx:demo} \stoptext
\startxmlsetups btx:demo \xmlfilter {#1} {/bibtex/*/command(btx:demo:action)} \stopxmlsetups \startxmlsetups btx:demo:action \xmldoifelse {#1} {/field[@name='keywords']} { \xmlfilter {#1} { /field[@name='keywords' and not contains(text(),'alpha')] /.. /command(btx:tag) } } { \xmlsetup{#1}{btx:tag} } \stopxmlsetups ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
thanks a lot hans!
Am 22.12.2016 um 18:30 schrieb Hans Hagen
: On 12/22/2016 6:06 PM, Michael Eidenbenz wrote:
Hello
I use the xml interface to list all publications that dont match a search criteria:
/field[@name='keywords' and not (contains(text(),'alpha'))]
but there are entries where the keywords field is missing. how can I include them (here "test-3") in the output?
Thanks Michael
--------------------------
\startbuffer[bib]
@article{test-1, title = {Article One}, author = {A. Foo and X. Bar}, year = {2001}, keywords = {alpha}, }
@book{test-2, title = {Book Two}, author = {B. Foo}, year = {2002}, keywords = {beta}, }
@whatever{test-3, title = {Book Three}, author = {C. Foo}, year = {2003}, }
\stopbuffer
\usebtxdataset [database] [bib.buffer] \convertbtxdatasettoxml [database]
\startxmlsetups btx:tag \hbox{\xmlatt{#1}{tag}} \stopxmlsetups
\startxmlsetups btx:demo \xmlfilter {#1} { /bibtex /* /field[@name='keywords' and not (contains(text(),'alpha'))] /.. /command(btx:tag) } \stopxmlsetups
\starttext \xmlsetup{btx:database}{btx:demo} \stoptext
\startxmlsetups btx:demo \xmlfilter {#1} {/bibtex/*/command(btx:demo:action)} \stopxmlsetups
\startxmlsetups btx:demo:action \xmldoifelse {#1} {/field[@name='keywords']} { \xmlfilter {#1} { /field[@name='keywords' and not contains(text(),'alpha')] /.. /command(btx:tag) } } { \xmlsetup{#1}{btx:tag} } \stopxmlsetups
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________
participants (2)
-
Hans Hagen
-
Michael Eidenbenz