Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   XML und Nodes mit HTML Tags (https://www.delphipraxis.net/194542-xml-und-nodes-mit-html-tags.html)

RWarnecke 5. Dez 2017 19:06


XML und Nodes mit HTML Tags
 
Hallo zusammen,

ich habe eine einfache XML-Datei. Die versuche ich über himXML zu öffnen. Das funktioniert auch noch, nur wenn ich jetzt versuche einzelne Nodes auszulesen oder mir nur die Anzahl der Nodes wiedergeben will bekomme ich den folgenden Fehler :

---------------------------
Debugger Exception Notification
---------------------------
Project eBayWerkzeugkoffer.exe raised exception class EXMLException with message '[EXMLException] TXMLFile.ParsingTree:
unknown closing tag - node "font" is the last opened, but closing "strong" is found'.
---------------------------
Break Continue Help
---------------------------

Die einzelnen Nodes sind wie folgt aufgebaut :

Code:
<Item>
   <id>63312</id>
   <ApplyShippingDiscount></ApplyShippingDiscount>
   <AttrXML></AttrXML>
   <AutoPay></AutoPay>
   <BuyItNowPrice>0</BuyItNowPrice>
   <Country>DE</Country>
   <Currency></Currency>
   <Description><font rwr='1' size='4' style='font-family:Arial'>
<style>img{max-width:100%}</style>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<p align="left">
<strong><font color="#ff0010" face="Arial" size="4">Beispieltext</font></strong>
</p>
</font></Description>
   <ExpressOptOut></ExpressOptOut>
   <GetItFast></GetItFast>
</Item>
Wenn ich den HTML-Quelltext aus der Node "Description" entferne, dann funktioniert der folgende Quelltext :
Delphi-Quellcode:
var
  xmlFile: TXMLFile;
  nodeList: TXMLNodeList;
begin
  xmlFile := TXMLFile.Create();
  xmlFile.LoadFromFile(XMLFileName);

  nodeList := xmlFile.Nodes;
  result := IntToStr(nodeList.Count);
end;
XMLFileName ist ein String mit dem Pfad zur XML-Datei. Was muss ich machen, damit das auch mit dem HTML-Quelltext funktioniert ?

HolgerX 5. Dez 2017 19:25

AW: XML und Nodes mit HTML Tags
 
Hmm..

Da fehlt für das '<meta' das </meta> und es kommt dafür das </font>...

RWarnecke 5. Dez 2017 19:38

AW: XML und Nodes mit HTML Tags
 
Danke für den Hinweis mit Meta. Wenn ich manuell </meta> hinzufüge funktioniert es. Jetzt ist es so, dass der HTML-Quelltext aus einem Export kommt. Kann ich irgendwie den Inhalt von den XML Nodes bei der Überprüfung ausschließen ?

Uwe Raabe 5. Dez 2017 21:58

AW: XML und Nodes mit HTML Tags
 
Zitat:

Zitat von RWarnecke (Beitrag 1388012)
Kann ich irgendwie den Inhalt von den XML Nodes bei der Überprüfung ausschließen ?

Ist das nicht genau ein Anwendungsfall für CDATA?

himitsu 5. Dez 2017 22:44

AW: XML und Nodes mit HTML Tags
 
CDATA wäre ein guter Weg, oder die HTML-Tags umcodieren.
<xyz>
&lt;xyz&gt;

Aber wenn schon HTML direkt im XML, dann auf jeden Fall nur XHTML, denn das wäre vollständig XML-kompatibel.

RWarnecke 6. Dez 2017 07:15

AW: XML und Nodes mit HTML Tags
 
Hallo zusammen,

danke für die Antworten. CDATA war das was ich gebraucht habe. Da ich die Daten so geliefert bekomme und keinen Einfluss drauf habe, werde ich jetzt einfach <Description> durch <Description><![CDATA[ und </Description> durch ]]></Description> ersetzen, bevor ich das XML-File in himXML lade.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 Uhr.

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