Aufnahme XML File enthält ungültige Zeichen

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Aufnahme XML File enthält ungültige Zeichen

Beitrag von Tommy »

Ich versuche gerade mal die XML Files zu "verwursten" um evtl. einen Tagger zu bauen. Der XML Parser von .NET meint das es sowiso kein valides XML ist und wenn Ich Ihn zwinge das File zu laden kriege ich eine Ausnahme wg. ungültigem Zeichen (s.u.) Meldung; "'', hexidezimaler Wert 0x05, ist ein ungültiges Zeichen. Zeile 14, Position 28."
<epgid>2147483647</epgid>
<mode>1</mode>
<videopid>1023</videopid>
<audiopids selected="1024">
<audio pid="1024" name="deutsch"/>
</audiopids>
<vtxtpid>35</vtxtpid>
<genremajor>0</genremajor>
Kann man sowas bereits beim Anlegen des Files vermeiden?
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Aufnahme XML File enthält ungültige Zeichen

Beitrag von GetAway »

Hier gibt es noch einiges zu tun.
Es wird halt nicht konsequent UTF-8 verwendet.
<neutrino commandversion="1">
<record command="record">
<channelname>JUNIOR</channelname>
<epgtitle>LazyTown - Los geht&apos;s</epgtitle>
<id>8716307</id>
<info1>Eine neue Regel</info1>
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Aufnahme XML File enthält ungültige Zeichen

Beitrag von Tommy »

ne das ist schon korrekt "escaped" http://www.w3.org/TR/REC-xml/
In .NET gibt's da auch eine Klasse die das hin und zurückwandelt. Wenn das so gespeichert wird muß das nur bei der Anzeige unescaped werden. Das XML ist durch Sachen wie ä nicht invalid wohl aber durch sowas: http://www.w3.org/TR/REC-xml/#NT-Char
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Aufnahme XML File enthält ungültige Zeichen

Beitrag von GetAway »

So tief steck ich da nicht drin :)
Es sollte aber mal irgendwann gefixt werden, da die Anzeige im
Filmarchiv schon lange mit diesen "Sonderzeichen" nicht klar kommt.
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Re: Aufnahme XML File enthält ungültige Zeichen

Beitrag von Günther »

Das mit den ungültigen Zeichen ist mir auch schon einmal bei den Audiopidname aufgefallen, aber auch nur dort. Meistens passt es aber. Theoretisch könnte man natürlich die Datei vor dem speichern nochmals überprüfen...
Bei Bedarf könntest Du aber auch die movieinfo-Klasse verwenden. Die habe ich gerade für Windows angepasst (mit bereits gepatcher ;apos Anzeige). Bei Bedarf einfach mal melden ...

Günther
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Re: Aufnahme XML File enthält ungültige Zeichen

Beitrag von DrStoned »

@Günther,
Bei der filmname.xml habe ich heute auch noch einen Fehler entdeckt und zwar bei der Variablen

Code: Alles auswählen

<productiondate>2007</productiondate>
Wenn ich wie beschrieben 2007 eingebe, wird am TV-Bildschirm beim Druck auf die ?- Taste 3907 angezeigt.

Greetz von DrStoned :lol: :lol: :lol:
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Aufnahme XML File enthält ungültige Zeichen

Beitrag von Tommy »

@Günther:
die Klasse wird mir unter VS2008 speziell VB nix nützen es sei denn Du hast eine DLL von gemacht. Ich wollte gleich soweit gehen, das ein Multiselect von Filmen möglich ist zum Taggen von Serien. Dazu will ich die XML Files in eine Datatable laden und komplett wieder wegspeichern (so wie man das von MP3 Taggern kennt). Mit der Idee gehe ich schon seit 2 Jahren schwanger. Evtl. komme ich ja diesen Winter dazu :wink:

An Player denke ich überhaupt nicht dabei. Hast Du aber bedacht das Du evtl. die FTP Verbindung nicht binär hast?

Gruß,
Tommy
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Aufnahme XML File enthält ungültige Zeichen

Beitrag von Tommy »

Ich habe mir mal die movieinfo reingezogen. Da wird ja einfach nur die XML Datei mit "wilden" Stringoperationen aufgedröselt. Da ist klar das da dann ungültige Zeichen sofern diese vom EPG kommen mit "verwurstet" werden und im XML landen. Prinzipiell könnte man die ungültigen Zeichen vermeiden wenn man die info vom EPG erstmal auf ([A-Za-z]|[0-9]|\&|\;) regext.

Ich würde dann auch empfehlen im XML _alle_ Sonderzeichen und Umlaute zu escapen (ä). Natürlich muß der Rest von neutrino (Moviebrowser) das auch wieder auflösen können. Mal so und mal anders (wie jetzt) ist glaube ich keine Lösung und wird immer inkompatibel zum Rest der Welt sein
Tommy
Tuxboxer
Tuxboxer
Beiträge: 4332
Registriert: Dienstag 7. Mai 2002, 17:04

Re: Aufnahme XML File enthält ungültige Zeichen

Beitrag von Tommy »

@Günther:

Du kennst Dich doch bestens mit dem Movieplayer aus. Kann es schaden oder zu Fehlern führen wenn im XML File keine apids eingetragen sind? Es geht mir gerade darum "Dummy" XML Files zu erzeugen wenn für ein zu taggendes TS kein XML (mehr) da ist. Kriegt man die apids aus dem TS File irgendwie ausgelesen?

Bei einem Test im Movieplayer wurd trotz komplett fehlendem <audiopids> Tag Ton gespielt.

Evtl. krieg ich die movieinfo Klasse als .NET Version dieses WE noch fertig. Der XML Parser nimmt einem schon recht viel ab unter NET :wink:
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Re: Aufnahme XML File enthält ungültige Zeichen

Beitrag von Günther »

Nein, das schadet nicht. Nur wird bei der Audiospurauswahl der entsprechende Text nicht angezeigt (nur die apid-nummer). Die Audiopids werden direkt im .ts-File gesucht.

Das mit dem rewrite ist sicherlich eine gute Idee. Ich hätte auch die xml-lib verwendet, wenn auf der dbox ein stärker Proz wäre ;). Das mit den Makros ist schon recht unübersichtlich und machen auch nur das Nötigste. Dafür aber schnell wie Schmitts Katze :lol: Und funktioniert ja auch soweit ganz gut....

Zu viel würde ich auf der dbox (zumindest im lese-Zweig) nicht parsen, da sonst die Einlesezeit im Filmarchiv größer wird. Der Schreibzweig ist egal. Ich werde mir das - nachdem ich mit dem Windows-Programm abgeschlossen habe- mal ansehen.

Übrigens: Im Filmarchiv.exe habe ich eine einfache Tagging-Funktion eingebaut ;)

Günther