xmlstarlet sel -T -t -v "//node/item" file.xml
e gera o conteúdo de
<node><item>content</item></node>
como texto sem espaços em branco adicionais.
Estou tentando manipular dados XML com XMLStarlet para fins de tradução, conforme solicitado em link mas, embora os nós que estou tentando ler sejam retornados, há whitespace / newlines retornados. O XML de amostra pode ser encontrado na outra pergunta e a chamada do programa é a seguinte:
xml sel --noblanks --text --template --nl --value-of "//y:NodeLabel" --value-of "//y:EdgeLabel" my.graphml
resultando em
...
The node's text
...
The edge's text
...
( ...
representa uma linha em branco)
Eu gostaria de uma explicação do que está acontecendo e se o resultado é esperado ou se isso é causado pelo XMLStarlet. Uma chamada de programa fixa seria apreciada, mas é claro que programas alternativos ou - se necessário - filtragem das linhas em branco também seriam aceitáveis (grep / sed / awk, CMD).
xmlstarlet sel -T -t -v "//node/item" file.xml
e gera o conteúdo de
<node><item>content</item></node>
como texto sem espaços em branco adicionais.
O problema é que você adicionou --nl
ao seu comando. Dos documentos :
-n or --nl - print new line
Isso adicionará uma nova linha a cada elemento impresso.
Tags command-line xml