AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi xmlNode-Value manipulieren (xmlNode.xml)
Thema durchsuchen
Ansicht
Themen-Optionen

xmlNode-Value manipulieren (xmlNode.xml)

Ein Thema von s-w · begonnen am 20. Okt 2008 · letzter Beitrag vom 21. Okt 2008
Antwort Antwort
s-w

Registriert seit: 7. Aug 2008
4 Beiträge
 
#1

xmlNode-Value manipulieren (xmlNode.xml)

  Alt 20. Okt 2008, 14:40
Hi,
ich arbeite mit XMLDoc, xmldom und MSXML2_TLB.

Ein XmlNode hat einen Wert z.B. <telefon>123456789</telefon>, dieser soll geändert werden und zwar so, dass der xmlknoten Unterknoten enthält also z.B. <telefon><telefon1>123456</telefon1><telefon2>234567</telefon2></telefon>

Das was nun also als Value in den Xml-Knoten geschrieben werden soll habe ich in einem String vorliegen und kann natürlich beliebig gross sein.

mit xmlNode.text := strValue und xmlNode.nodeValue := strValue gehts nicht.
xmlNode.xml ist ja nur "Read only"

In C# kann man einfach xmlNode.xml = strValue angeben und fertig.

Wenn ich mit xmlNode.text den Wert zuweise steht in xmlNode.Text <telefon><telefon1>123456</telefon1><telefon2>234567</telefon2></telefon> das drin, in xmlNode.xml aber
<telefon>&lt;telefon1&gt;123456&lt;/telefon1&gt;&lt;telefon2&gt;234567&lt;/telefon2&gt;</telefon>

Hat jemand ne Idee wodran das liegen kann oder wie ich trotz dieses Problems ordentlich mit dem XML umgehen kann?

Danke

Gruß
s-w
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#2

Re: xmlNode-Value manipulieren (xmlNode.xml)

  Alt 20. Okt 2008, 20:23
Also das es mit .text nicht geht liegt einfach daran, dass der Inhalt dann auch als Text interpretiert wird und daher die Sonderzeichen maskiert werden um die Struktur nicht zu verändern (it's not a bug it's a feature...).
Spontan würde mir nur einfallen, das ganze mittels loadXML in ein zweites Document zu laden und zu kopieren... ist aber nicht sehr elegant.
Was spricht denn dagegen die Child-Nodes mittel createNode und appendChild einzufügen?
Jan
  Mit Zitat antworten Zitat
s-w

Registriert seit: 7. Aug 2008
4 Beiträge
 
#3

Re: xmlNode-Value manipulieren (xmlNode.xml)

  Alt 21. Okt 2008, 12:31
Hi,
erstmal danke für deine Antwort.

Dagegen spricht, da mir z.B. zwei Knoten mit mehreren Attributen in einem String vorliegen, was bedeutet das ich den String ja iwie trennen muss und das ist ja auch nicht wirklich eine elegante Lösung ....

So wie ich das momentan sehe bleibt mir als einziges das xmlDocument in einen String zu konvertieren, das was hinzugefügt werden soll in den Sting an die richtige Stelle packen und dann das ganze in ein neues Xml-Doc zu laden. Aber da muss es doch eine bessere Lösung geben ...

Oder ist es eine Möglichkeit die ".xml" eigenschaft von MSXML von readonly auf read/write umzustellen/umzuschreiben?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:14 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