[Koha] Looking to Query Indicators
Robin Sheat
robin at catalyst.net.nz
Wed Oct 16 12:29:05 NZDT 2013
Nicole Engard schreef op di 15-10-2013 om 12:20 [-0500]:
> Anyone know if there is a way to query a marc field based on the indicator
> value.
>
> I have this report (which works):
>
> select b.title, b.author,
> ExtractValue(m.marcxml,'//datafield[@tag="521"]/subfield[@code>="a"]') AS
> lexile from biblio b left join biblioitems m using (biblionumber) where
> ExtractValue(m.marcxml,'//datafield[@tag="521"]/subfield[@code>="a"]')
> between <<Lexile between>> and <<and>>
>
> But I want to only query 521s that have a 8# in the indicators. My report
> will find all of the below:
The language that ExtractValue uses is called 'xpath', and it's a way of
describing paths into XML.
You should make your datafield request qualified with the extra things
you need. For example, a MARCXML field looks like:
<datafield tag="100" ind1="1" ind2=" ">
<subfield code="a">Gravelle, Karen.</subfield>
</datafield>
so the attributes you care about are 'tag' (which you already have),
ind1, and ind2.
Xpath lets you and/or things together, so you could use something like:
//datafield[@tag="521" and @ind1="8" and @ind2=" "]/subfield...
More reference here:
http://www.w3schools.com/xpath/default.asp
but I checked the syntax of this particular answer here:
http://stackoverflow.com/questions/6029232/xpath-select-multiple-attr
mostly because I knew what to search for :)
I haven't tested this solution, btw, but it should work.
--
Robin Sheat
Catalyst IT Ltd.
✆ +64 4 803 2204
GPG: 5FA7 4B49 1E4D CAA4 4C38 8505 77F5 B724 F871 3BDF
More information about the Koha
mailing list