Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi [IXMLDOMDocument2] Nicht deklarierte Entität. (https://www.delphipraxis.net/108648-%5Bixmldomdocument2%5D-nicht-deklarierte-entitaet.html)

xZise 17. Feb 2008 09:38


[IXMLDOMDocument2] Nicht deklarierte Entität.
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo DP,
ich versuche gerade ein Feed ein zu lesen.
Um die Zeit zu überbrücken, in der ich auf die Antwort warte, habe ich es so gemacht, dass er eine Datei lädt (um zu testen, in wie weit das funktioniert.
Ergebnis:
Delphi-Quellcode:
xml := CoDOMDocument40.Create;

xml.setProperty('NewParser', true);
xml.load(AFilename);
Nun bekomme ich folgenden Fehler (xml.parseError.reason):
Zitat:

Nicht deklarierte Entität.
Woran könnte das liegen?
Als Beispiel RSS habe das aus der Wikipedia genommen.
Ich hänge es mal an.

[edit=1]Ich habe mir mal ein kleinen Feed selber zusammengetippt, und dort meckert er nicht rum?[/edit]
[edit=2]Durch unzähliges Herumprobieren weiß ich endlich woran es liegt: Er kommt nicht mit "" zurecht. Wenn man das löscht, dann funktioniert er Ordnungsgemäß![/edit]

MfG
xZise

marabu 17. Feb 2008 10:18

Re: [IXMLDOMDocument2] Nicht deklarierte Entität.
 
Hallo Fabian,

ist dem XML-Parser nicht einfach so als Entity bekannt. Entweder du verwendest stattdessen ein character entity * oder du musst solche Entities in einer DTD definieren. Normalerweise tritt das Problem aber nur durch Medienbrüche auf.

Grüße vom marabu

xZise 17. Feb 2008 11:18

Re: [IXMLDOMDocument2] Nicht deklarierte Entität.
 
Zitat:

Zitat von marabu
[...] ist dem XML-Parser nicht einfach so als Entity bekannt. Entweder du verwendest stattdessen ein character entity * oder du musst solche Entities in einer DTD definieren. Normalerweise tritt das Problem aber nur durch Medienbrüche auf.[...]

Also, da es durchaus auch bei anderen RSS Feeds sein könnte:
Was ist ein Character Entity, und wie definiert man diese Entities?

MfG
xZise

marabu 17. Feb 2008 11:46

Re: [IXMLDOMDocument2] Nicht deklarierte Entität.
 
Da ist mir etwas missglückt und du hast nur noch die Lücke sehen können:

Zitat:

Zitat von marabu
... ein character entity   oder ...

XML Character References

xZise 17. Feb 2008 12:09

Re: [IXMLDOMDocument2] Nicht deklarierte Entität.
 
Aber andere Entitäten sind ihm bekannt: z.B.
Code:
>
o.Ä.

Und das hieße: Datei downloaden > "&" durch "&#" ersetzen > Einlesen ? Und was ist, wenn das kein Entität ist (Also z.B.: A & B statt eigentlich A & B)?

MfG
xZise

marabu 17. Feb 2008 13:23

Re: [IXMLDOMDocument2] Nicht deklarierte Entität.
 
Die XML Spezifikation definiert fünf Character Entities: & > < ' " - mehr muss ein XML-Parser nicht kennen.

Was du da von Download und Ersetzen schreibst verstehe ich nicht. Magst du es näher erklären?

xZise 17. Feb 2008 17:56

Re: [IXMLDOMDocument2] Nicht deklarierte Entität.
 
Zitat:

Zitat von marabu
[...]Magst du es näher erklären?

Natürlich:
Ich habe ein RSS Feed.
Denn downloade ich von der jeweiligen Website.
Und dannach habe ich ja einen String mit dem Inhalt. Jetzt ist die große Frage, was man damit machen soll:
Möglicherweise sind die Entitäten nicht ausreichend (""). Was mache ich nun damit der Parser das versteht?

MfG
xZise

marabu 17. Feb 2008 19:14

Re: [IXMLDOMDocument2] Nicht deklarierte Entität.
 
Ganz klar: Dem WebMaster Bescheid geben, der den RSS-Feed verbrochen hat. Wenn irgendwelche Entities enthalten sind, die der XML-Parser nicht kennt, dann ist der RSS-Feed fehlerhaft.

Die Frage, wie du einem XML-Parser unbekannte Entities antrainieren kannst, hatte ich bereits in Beitrag #2 (DTD) beantwortet.

Wie besorgst du dir denn den RSS-Feed? Kannst du mir einen URL geben?

xZise 17. Feb 2008 21:29

Re: [IXMLDOMDocument2] Nicht deklarierte Entität.
 
Zitat:

Zitat von marabu
[...]Wie besorgst du dir denn den RSS-Feed? Kannst du mir einen URL geben?

Naja ^^ Dieser Feed ist aus der Wikipedia kopiert ;) Das Beispiel ^^

MfG
xZise

marabu 18. Feb 2008 05:36

Re: [IXMLDOMDocument2] Nicht deklarierte Entität.
 
Der von dir in Beitrag #1 angehängte RSS-Feed (Wikipedia) ist doch korrekt, da sind keine unbekannten Entities enthalten. Du darfst stets von einem korrekten RSS-Feed ausgehen. Treten Fehler auf, dann sind es nicht deine Fehler. Für die Bekanntmachung von weiteren Entities ist der Ersteller des RSS-Feed zuständig.

xZise 18. Feb 2008 16:57

Re: [IXMLDOMDocument2] Nicht deklarierte Entität.
 
Zitat:

Zitat von marabu
Der von dir in Beitrag #1 angehängte RSS-Feed (Wikipedia) ist doch korrekt, da sind keine unbekannten Entities enthalten.[...]

Wikipedia: Dort sind sehrwohl enthalten!

MfG
xZise

marabu 18. Feb 2008 17:44

Re: [IXMLDOMDocument2] Nicht deklarierte Entität.
 
Wikipedia-Artikel können Fehler enthalten.

Das von dir verlinkte Beispiel ist fehlerhaft.

xZise 18. Feb 2008 17:54

Re: [IXMLDOMDocument2] Nicht deklarierte Entität.
 
Zitat:

Zitat von marabu
Wikipedia-Artikel können Fehler enthalten.

Das von dir verlinkte Beispiel ist fehlerhaft.

Okay :) Wenn man als RSS Reader die Schuld auf den Author geben darf ;) Ist ja alles in Butter xD

MfG
xZise


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz