Por que o XMLStarlet retorna whitespace / newline adicional para nós de texto XML?

0

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).

    
por handle 24.05.2013 / 11:38

3 respostas

2

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.

    
por 08.08.2014 / 21:21
0

Eu ainda não sei, mas resolvi a tarefa com Python e lxml , que não captura espaço em branco no membro text do nó.

    
por 08.07.2013 / 13:55
0

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.

    
por 03.09.2018 / 17:21