Predefinição:Marcxml/FieldBreaker: mudanças entre as edições

De Wikincat
Ir para navegação Ir para pesquisar
Sem resumo de edição
 
(replacing RegexFun > RegexFunctions)
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 1: Linha 1:
{{#vardefine:tag|{{#regex:{{{1|}}}|/(\d{3})$/}}}}{{#arraymap:{{{2|}}}|&&&&|@@@@|<datafield tag="{{#var:tag}}" 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;amp;}}|<|&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}). Tal campo é armazenado na variável "tag" para posterior uso. {{{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 -->
{{#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;amp;}}|<|&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 -->

Edição atual tal como às 09h32min de 6 de janeiro de 2023