Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Prism Pluszeichen als Entity (https://www.delphipraxis.net/61801-pluszeichen-als-entity.html)

webseal 26. Jan 2006 14:11


Pluszeichen als Entity
 
Hallo,

ich versuche eine Anwendungskonfigurationsdatei in XML anzulegen. In dem abzulegenden String kommen auch Pluszeichen vor.
Beim Compilieren in D2006 erhalte ich aber an der Position des Pluszeichens (nach StartUpPath) eine Fehlermeldung. Ich vermute ich sollte es durch ein Entity wie z. B: &quot ersetzen, habe aber keine Ahnung wie das für das Pluszeichen aussieht :( .

Hier der Quelsscode

XML-Code:
<configuration>
  <appSettings>
   <add key="DbConnectionString" value="Database=Application.StartUpPath + &quot\&quot+strDatabase;
   User=&quotSYSDBA&quot;Password=&quotmasterkey&quot;Dialect=&quot3&quot;
   Server=&quotlocalhost&quot;ServerType=&quot1&quot" />
  </appSettings>
</configuration>
Kann mir jemand helfen?

webseal

S2B 26. Jan 2006 14:17

Re: Pluszeichen als Entity
 
Für das Pluszeichen gibt es kein "Spezial-Entity": http://www.webreference.com/html/ref...t1.html#HEAD-1

s14 26. Jan 2006 14:27

Re: Pluszeichen als Entity
 
Du könntest auch CDATA verwenden, dann spielt es keine Rolle welche Zeichen verwendet werden.

webseal 26. Jan 2006 14:30

Re: Pluszeichen als Entity
 
@S2B:
Okay, danke. Wenn ich das richtig verstehe müsste ich doch dann Pluszeichen als Decimal-Entity angeben können, also in der Art &#43. Wenn ich das mache bekomme ich allerdings eine exception mit der Meldung: "Invalid Syntax for a decimal numeric entity reference"

XML-Code:
   <add key="DbConnectionString" value="Database=Application.StartUpPath &#43 &quot\&quot+strDatabase;
   User=&quotSYSDBA&quot;Password=&quotmasterkey&quot;Dialect=&quot3&quot;
   Server=&quotlocalhost&quot;ServerType=&quot1&quot" />
Eine Idee woran das liegen könnte oder andere Vorschläge wie ich die Pluszeichen da reinbekomme?

@s14
Gib mir mal einen hint was CDATA ist.

webseal

s14 26. Jan 2006 14:34

Re: Pluszeichen als Entity
 
Darfs auch gleich ein Beispiel sein?

<info><![CDATA[Hier ein Tag
das ist ein 'Zeilenumbruch'. Und noch FETT
Jetzt müsste auch das + funktionieren]]>
</info>

Innerhalb des Bereiches können eben auch Tags verwendet werden, was normalerweise falsch interpretiert wird.
Der Bereich wird vom Parser ignoriert.

webseal 26. Jan 2006 14:51

Re: Pluszeichen als Entity
 
Ich habe das nun folgendermaßen eingebunden:

XML-Code:
<add key="DbConnectionString" value="Database=Application.StartUpPath [CDATA[+]] &quot\&quot [CDATA[+]] strDatabase;
   User=&quotSYSDBA&quot;Password=&quotmasterkey&quot;Dialect=&quot3&quot;
   Server=&quotlocalhost&quot;ServerType=&quot1&quot" />
Allerdings ist der String nun leer, wenn ich ihn einlese. Stimmt die Syntax so? Wenn nein, kannst Du mir an meinem Beispiel sagen, wie ich das CDATA aufrufe?

webseal

s14 26. Jan 2006 15:11

Re: Pluszeichen als Entity
 
Der Knoten muss als CDATA deklariert sein:

<setup>
<guid>2D7CC8F5-4556-4F71-8C51-40C75ACFA6C0</guid>
<offline>1</offline>
<info><![CDATA['Hier können alle Zeichen verwendet werden']]></info>
</setup>

Ausgelesen wird die Zeichenfolge so:

Delphi-Quellcode:
XMLNode.selectSingleNode( 'info' ).text;
Geschrieben wird so:

Delphi-Quellcode:
XMLNode.selectSingleNode( 'info' ).appendChild(XMLColl.createCDATASection('Hier können alle Zeichen verwendet werden'));
wobei es sich bei "XMLColl" um das IXMLDOMDocument2 handelt.


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