Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   himXML wie kriege ich die Leerschläge? (https://www.delphipraxis.net/194126-himxml-wie-kriege-ich-die-leerschlaege.html)

SimSam 19. Okt 2017 16:03

himXML wie kriege ich die Leerschläge?
 
Ich lese gerade ein paar tausend visio dokumente (vsdx, vssx) mit himXML ein.

Da stosse ich auf folgenden Knoten:
Code:
                                                         _ diesen Text kriege ich als Knoten
<Text><cp IX='0'/><pp IX='0'/><tp IX='0'/>   <cp IX='1'/>D</Text>
                                          ___ diese Leerschläge brauche ich...
Gibt es eine Option, damit diese Leerzeichen nicht weggetrimmt werden?
Die option xoHideUnknownNodes und xoHideInstructionNodes habe ich entfernt. Hilft aber nicht.

Hat jemand eine Idee oder Workaround, wie ich mit himXML and diese Daten komme?

Danke und gruss, SimSam

Neutral General 19. Okt 2017 16:07

AW: himXML wie kriege ich die Leerschläge?
 
Ich glaube das Problem ist die XML.
Soweit ich weiß kannst du kein Tag haben was als Inhalt nur Leerzeichen hat.
Da müssten die Leerzeichen kodiert werden denke ich.

SimSam 19. Okt 2017 16:10

AW: himXML wie kriege ich die Leerschläge?
 
Das kann ich mir gut vorstellen, nur kann ich das Visio nicht erklären.
Ich muss irgendwie schlucken was es mir entgegenwirft...

Neutral General 19. Okt 2017 16:20

AW: himXML wie kriege ich die Leerschläge?
 
Du kannst vllt mal damit experimentieren diese Stellen per Regex zu finden (zuverlässig ohne anderen Kram kaputt zu machen) und dann die Leerzeichen durch & #x0020; (kein Leerzeichen zwischen & und #!)
Danach lädst du den XML-String wie gehabt mit himXML.

Edit: Ist das gewollt, dass oben genanntes hier in der DP funktioniert?

SimSam 20. Okt 2017 09:07

AW: himXML wie kriege ich die Leerschläge?
 
Gelöst, und danke für den Tipp!

& #x0020; (ohne space) hat nicht geklappt.
Ich lese das File nun in ein TStringStream ein und überarbeite die <Text> Nodes, indem ich die Leerzeichen durch meine eigenen Marker ersetze.
Das XML file lese ich vom überarbeiteten Stream ein und übersetze beim lesen der Tags in den Text Nodes wieder in Leerzeichen.

Umständlich, aber fängt den Fall ab.

Gruss!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 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