segunda-feira, 9 de junho de 2014

Recuperação de desastres DOCX: Como eu salvei minha esposa de XM-HELL


5 coisas que você não sabia sobre o backup em nuvem


Blog Sysadmin O que você faz quando um documento crítico Palavra não vai abrir? Mesmo no mundo de hoje de documentos com controle de versão, é inteiramente possível para a corrupção a ranger e passar despercebida, destruindo todo o seu histórico de versões.


Mas nem tudo está perdido. Minha esposa tinha isso acontecer com ela; aqui está como nós resolveu.


Exemplo do mundo real


No meu caso, o Word não iria abrir um arquivo importante, morrendo em vez com o erro "o nome na tag final do elemento deve corresponder ao tipo de elemento na marca de início". Traduzido do Microsoftese: "O processador de texto que criamos esse documento fez um XML dodói e Word vai se recusar a ler este documento agora."


O tipo mais comum de XML boo-boos que processadores de texto fará com que são ou salvar marcas fora de ordem (o exemplo mais famoso é o Microsoft Word erro etiquetas OMath ) ou a abertura de uma tag, mas não fechá-la. Emissão de hoje foi o último. A mulher estava usando uma versão antiga do BrOffice Writer (v4.1) e tinha feito várias alterações para hiperlinks em uma área do documento. Escritor ficou confuso de alguma forma, abriu uma marca de hiperlink, mas não chegou a colocar em qualquer informação a respeito de onde foi hyperlink para, e não fechar a tag.







O que deve ser notado aqui é que o Writer e Word se comportam de forma muito diferente com esse arquivo quebrado. Escritor vai abrir o arquivo, mas simplesmente parar de processar o documento em torno de onde o XML deixa de fazer sentido. Palavra vai vomitar esse erro e morrer. Ambos são úteis.


Corrigindo o erro


Para entender como DOCX do Microsoft (e similares OOXML formatos) pode dar errado, precisamos entender um pouco sobre a estrutura desses documentos. O que é importante notar é que os documentos OOXML são realmente arquivos zip, com todos os presentes embalados em vários XMLs como recheio cremoso. Isso geralmente significa que se pode mudar o nome do arquivo para something.zip e abri-lo no 7ZIP, podemos corrigir o documento.


O que precisamos saber é o que arquivo XML dentro do DOCX está causando o problema e onde procurar por ele. Quando o Word explodiram ao tentar abrir o DOCX deu-se essa informação. "Localização: Peça: / word / document.xml, Linha: 2, Coluna:. 12464"


Word DOCX error screenshot

O erro em questão



Se você quer a posição exata do erro, mas não tiver o Word acessível, abrir cada XML no Firefox. Firefox vai deixar você saber quando um dos XMLs não está analisando corretamente, e dizer-lhe que linha e caráter, assim como Word.


Escritor dá-lhe também a informação por meio da exibição do último informações parseable no documento antes que ele deixa de fazer sentido. Neste caso, as últimas palavras escritor pôde analisar foram "O site precisa ser capaz de gerar faturas e log quando um pagamento é recebido." Abrir o arquivo XML no Internet Explorer irá fornecer a mesma informação.


Então, eu tenho duas opções para resolver isso:



  1. Abrir document.xml, vá para "a linha 2, caráter 12464".

  2. Abra o documento e procure por "O site precisa ser capaz de gerar faturas e log quando um pagamento é recebido."


Em ambos os casos, eu tenho que dar uma olhada nas tags XML e ver o que não está codificado corretamente.


Aqui temos um problema: todo o documento está na linha 2! Porque há um erro de XML, a maioria dos ambientes de desenvolvimento não vai refluir o XML para você até que você encontrar e matar o erro. Com tudo em uma longa linha, encontrar e matar o erro é muito mais difícil do que deveria ser.


Cheating


Há duas maneiras de enganar. A primeira é utilizar o Visual Studio ou Visual Studio Express. Basta abrir o arquivo XML, selecione tudo, copie o conteúdo e, em seguida, em seguida, cole em um novo documento XML. O Visual Studio irá recuar o XML que você está colando, fluindo-a sobre as linhas que é necessário, em vez de mantê-lo em uma única linha.


As linhas e referências de caráter acima são agora sem sentido, mas a última pista conteúdo parseable ainda é válido. CTRL + F irá abrir a caixa de diálogo de pesquisa, digite o pouco de conteúdo relevante e voilà, você está bem no meio de um pouco recuado corretamente de código ruim.


A outra maneira é abrir o arquivo XML no Chrome. Chrome vai mentir para você sobre a linha e coluna onde está o erro, por isso, ignorar isso. Mais importante ainda, o Chrome irá dizer-lhe o que a tag é ofender. Conceito Novel. Neste caso, a tag agressor é um hiperlink e Chrome está esperando para fechar antes do <p>.


Curiosamente, logo após o caráter 12464 há uma tag <w:p>. Armado com esta informação que eu possa razoavelmente deduzir que a primeira marca de hiperlink antes de caráter 12.464 em document.xml é de alguma forma a culpa.


Eu apaguei o tag, salvou o XML, colocá-lo de volta para o arquivo zip e rebatizou-a. Docx. Abra o arquivo no Word ou escritor e, como que por magia, o documento é todo novo. Dias de trabalho foram salvas.


Erro Insidious


A classe de erro XML descrita acima é absolutamente insidioso. Se você é o tipo de escritor que obsessivamente salva documentos só estão cavando sua própria sepultura. Enquanto a instância do processador de texto que causou o erro é aberto, o documento vai olhar e se comportar perfeitamente normal.


Você poderia ter criado o erro na página dois, mantido o documento aberto, desde então, salvando manualmente (ou automaticamente) em uma base regular. Contanto que você nunca fechar o processador de texto você só vai continuar salvando versões corrompidas do arquivo com mais e mais dados após o ponto corrupção.


Mesmo se você está economizando para uma versão de repositório de armazenamento de arquivos baseado em nuvem, eles só manter um número máximo de versões ao redor. Se você for como eu, você pode manter os documentos abertos durante semanas de cada vez; que o erro na página dois podem facilmente tornar-se incorporado em cada versão do documento salva por semanas, oprimindo a história máximo versão e acabando com qualquer chance de reverter.


Tentei dezenas de sites e ferramentas que prometiam ser capaz de corrigir arquivos DOCX corrompidos. Nenhum deles funcionou. Eu finalmente deparei com um post no blog de ​​desenvolvedor Asaf Benyamin que me colocou no caminho certo. Aqui está esperando que nenhum de vocês nunca tem que colocar esse conhecimento para o teste por si mesmos. ®







via Alimentação (Feed)

5 comentários:

  1. Cara, vc nao sabe como vc salvo a minha vida. Eu sou aluno de informatica, estou no ultimo ano, meu TCC deu esse problema. Fiquei desesperado achei q tinha perdido mais de um dia de trabalho. Com as orientacoes que vc me deu e umas ferramentos de algumas IDEs que eu uso o problema foi resolvido em menos de 10 minutos. Cara, muito obrigado! Seu post foi genial

    ResponderExcluir
  2. Muito obrigado, você salvou 15 dias de trabalho de uma amiga!

    ResponderExcluir
  3. Este comentário foi removido pelo autor.

    ResponderExcluir
  4. você não coloca as referências cara. isto é plágio. e tá muito mal traduzido véi, você poderia deixar em inglês mesmo ou pelo menos traduzir esta merda

    ResponderExcluir
  5. Não entendi nada, a linguagem está péssima.

    ResponderExcluir