Pergunta

Eu estou trabalhando com um sistema (Maximo) que gera um arquivo de texto.
Eu preciso remover apenas a primeira linha do arquivo.
A maneira de fazer isso deve estar usando XSLT.

Qualquer idéia?

Foi útil?

Solução

Sim, você pode fazer o que quiser em XSLT!

Ele provavelmente seria mais fácil fazê-lo em XSLT 2.0, se isso é uma opção para você. Michael Kay respondeu a uma pergunta semelhante sobre a lista de discussão XSL em 2005.

Parafraseando sua resposta, com pequenos exemplos:

Em XSLT 2.0, : você pode usar o unparsed-text () função para ler o arquivo, tokenize ( ) para dividi-lo em linhas (e simplesmente ignorar a primeira linha).

<xsl:for-each select="tokenize(unparsed-text($in), '\r?\n')">
 ...
</xsl:for-each>

Em XSLT 1.0 : você pode ler um arquivo de texto simples, fingindo que é um XML entidade externa, e referenciá-lo a partir de um documento XML que faz com que o entidade a ser expandida.

<!DOCTYPE foo [
<!ENTITY bar SYSTEM "bar.txt">
]>
<foo>
&bar;
</foo>

Outras dicas

A maneira de fazer isso é não usando XSLT.

XSLT pode produto arquivos de texto, mas não pode processo arquivos de texto. Ela só pode processar XML bem formado.

XSLT só terá um arquivo XML válido como entrada, e não um arquivo de texto geral. Pode texto de saída, no entanto.

(I usar XSLT para gerar o código de C, por exemplo.)

Se o seu processador XSLT suporta qualquer-para-qualquer transformação (xforms binários via BAF - Descritores arquivo simples), existe a possibilidade de fazer isso. Você pode quebrar o seu texto em um nó e, em seguida, operar nesse nó usando um modelo XSLT regular para saída de tudo o que é após o primeiro retorno de carro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top