Seite 1 von 1

XML einlesen - ein Zeichen am Ende scheint zu stören

Verfasst: Dienstag 2. August 2016, 13:34
von drnicolas
Ich verwende zunächst das Tool "pdftotext" um den Inhalt einer PDF-Datei als Text-datei zu speichern.

Schon die PDF-Datei selber enthält XML-Code und dieser soll dann durch mein Python-Skript eingelesen und geparst werden.

Ich erhalte also eine .txt-Datei mit genau dem richtigen Inhalt. 2Dinge sind aber möglicherweise problematisch:
1. Die Einrückungen aus dem Original-PDF fehlen.
2. DIe Datei schein am ENde irgendein Sonderzeichen zu enthlaten. Es sieht aus wie ein kleines Kästchen mit winzigen Zahlen drin.
Sieht für mich aus wie:

0 0
0 C

Ist es möglich, daß das anschliessende EInlesen deswegen fehlschlägt?
DIe Fehlermeldung verweist jedenfalls auf diese Zeile, column 0

Re: XML einlesen - ein Zeichen am Ende scheint zu stören

Verfasst: Dienstag 2. August 2016, 13:45
von BlackJack
@drnicolas: Das ist immer ein wenig problematisch zu beschreiben wie ein Zeichen aussieht, weil das von der Schriftart und vom System abhängen kann. Ich vermute einfach mal, dass es sich um das Zeichen '\u000c' handelt. Das ist ein Steuerzeichen, nämlich der Seitenvorschub (engl. Form Feed). Es könnte sein, dass das nach jeder Seite aus dem PDF eingefügt wird. Innerhalb von XML darf das allerdings nicht vorkommen:

Code: Alles auswählen

In [5]: etree.fromstring(u'<root>\u000c</root>')
  File "<string>", line unknown
XMLSyntaxError: PCDATA invalid Char value 12, line 1, column 7
Edit: An der Fehlermeldung sieht man übrigens auch ganz gut, dass es sich um einen Seitenvorschub handelt (Wert 12) ohne das man irgendeine Zeichendarstellung beschreiben muss. Fehlermeldungen am besten immer 1:1 kopieren.

Re: XML einlesen - ein Zeichen am Ende scheint zu stören

Verfasst: Dienstag 2. August 2016, 21:34
von drnicolas
Das scheint exakt so zu sein. Immerhin stammt der XML-COde als Extrakt aus einer PDF-Datei!

Stellt sich die Frage ob es einen Weg gibt dieses Steuerzeichen zu unterdrücken (eher nicht - Effekt von pdftotext) oder loszuwerden (aus dem XML-Code).

Kann man irgendwie mit Python solche STeuerzeichen filtern ?

Re: XML einlesen - ein Zeichen am Ende scheint zu stören

Verfasst: Dienstag 2. August 2016, 21:45
von BlackJack
@drnicolas: Natürlich, das wäre eine grundlegende Zeichenkettenoperation.