Como contar nós e obter valor de atributo sem usar xpath

2

Atualmente, tenho um script de shell como este:

LOGIN='curl 'https://www.ponta.jp/u/LWAS900/SLWAS900010.htm' -sS | grep '<input type="hidden" name\|<form\|</form''

for i in $(seq $(printf "$LOGIN" | xmllint --xpath "count(/form/input)" -))
do
    printf " -d "
    printf "$LOGIN" | xmllint --xpath "string(/form/input[$i]/@name)" -
    printf "="
    printf "$LOGIN" | xmllint --xpath "string(/form/input[$i]/@value)" -
done

Eu quero fazer a mesma coisa em um ambiente unix que não tenha xpath. Alguém pode me dizer como fazer isso?

    
por user218669 16.01.2016 / 18:26

1 resposta

0

Uma solução baseada em analisador XML é o caminho a percorrer. No entanto, aqui vai uma rápida expressão regular hackear:

LOGIN=...
printf "$LOGIN" | 
    perl -nE 'say "-d $1=$2" if /name="(.*?)".*?value="(.*)"/'
    
por 22.10.2016 / 10:36