Predefinição:Marcxml/FieldBreaker: mudanças entre as edições
< MARCXML
Ir para navegação
Ir para pesquisar
m (uma edição) |
(replacing RegexFun > RegexFunctions) |
||
Linha 1: | Linha 1: | ||
{{#arraymap:{{{2|}}}|&&&&|@@@@|<datafield tag="{{#rmatch:{{{1|}}}|/\d{3}$/|$0}}" ind1="{{#invoke:String|replace|source={{#sub:@@@@|0|1}}|pattern=[#/n]| |plain=false}}" ind2="{{#invoke:String|replace|source={{#sub:@@@@|1|1}}|pattern=[#/n]| |plain=false}}">{{#arraymap:{{#sub:@@@@|2}}|$|§|<subfield code="{{#sub:§|0|1}}">{{#replace:{{#replace:{{#sub:§|1}}|&|&amp;}}|<|&lt;}}|</subfield>}}</subfield></datafield>|}}<!-- Esta predefinição faz parte da predefinição Marcxml. Ela recebe os dados da terceira consulta (Field data) e os processa da seguinte maneira: {{{1|}}} traz o título do subobjeto (mainlabel) que contém o campo MARC (\d{3}). {{{2|}}} é/são o/s datafield/s recuperado/s. Eles são delimitados por "&&&&" e passados para a primeira arraymap, de modo a processar os campos repetíveis. A segunda arraymap serve para processar os subcampos do campo, isto é, aquilo delimitado pelo caractere especial "$". Adicionalmente, a XML requer que os caracteres "&", "'", """, "<" e ">" sejam escapados via entidades, isso é feito com simples substituições. Entre tags XML não é necessário escapar "'", """ e ">", ver https://stackoverflow.com/questions/1091945/what-characters-do-i-need-to-escape-in-xml-documents. Esta predefinição é destinada ao consumo por máquinas, para o consumo por humanos, ver Marcxml/PrettyFieldBreaker --> |