Existe alguma ferramenta que me permita verificar o comprimento String do nó XML

0

Estou querendo saber se existem ferramentas que farão isso:

Exmaple XML:

<node1>
 <Data>
 <Unique>123456789-1234567891</Unique> 
 </Data>
</node1>

O que eu esperava pesquisar era onde Único é Menos que 10 para - E se a Direita for menor que 9 de - para a direita.

Assim, a pesquisa sinalizaria esse registro / nó como um problema

<Unique>6789-1234567891</Unique>

Eu estava tentando usar o Grep para fazer isso, mas tem havido várias ferramentas XML que eu comecei a usar no Bash, então eu pensei em fazer a pergunta primeiro em uma ferramenta específica, talvez.

xmllint era um que eu estava usando.

    
por Dave Hamilton 26.02.2016 / 10:40

2 respostas

2

(desculpe spam você) Usando um analisador XML em perl

(se necessário: sudo cpan XML::DT )

#!/usr/bin/perl
use XML::DT;
my $file = shift;

# $c - contents after child processing

print dt(
   $file,
   'Unique' => sub{$c =~ s/^(\d{1,9}-\d+|\d+-\d{1,8})$/FIXME:$1/; toxml },
)

Nesse caso, você recebe um XML anotado com "FIXME" s

    
por 26.02.2016 / 13:45
1

grep -nP "<Unique>(\d{1,9}-\d+|\d+-\d{1,8})</Unique>" ex.xml

  • -n para produzir o número da linha dos Uniques errados
por 26.02.2016 / 13:21