Encoding für XmlDocument

01/03/2010 - 18:39 von Mike Wesling | Report spam
Hallo,

ich bekomme über einen SOAP WebService Aufruf ein XML zurück. Für mich
ist hier im gewünschten Knoten nur das InnerXML passend, was ich für
meine XPath-Abfragen dann mittels LoadXML(...) in ein XmlDocument lade.

Nach dem Navigieren zum richtigen Knoten lese ich den gewünschten
Attributwert mittels 'node.Attribute["MyAttribute"].value' aus. Leider
bekomme ich gelegentlich Zeichen in einer anderen Zeichenkodierung,
vermutlich UTF-8 zurück geliefert.

Meine Frage daher ist: wie kann ich entweder das XML schon in UTF-8 in
das XmlDocument laden oder eben dann entsprechend eben nacher den
gewünschten Attribut-Wert konvertieren?
 

Lesen sie die antworten

#1 Martin Honnen
01/03/2010 - 19:41 | Warnen spam
Mike Wesling wrote:

ich bekomme über einen SOAP WebService Aufruf ein XML zurück. Für mich
ist hier im gewünschten Knoten nur das InnerXML passend, was ich für
meine XPath-Abfragen dann mittels LoadXML(...) in ein XmlDocument lade.

Nach dem Navigieren zum richtigen Knoten lese ich den gewünschten
Attributwert mittels 'node.Attribute["MyAttribute"].value' aus. Leider
bekomme ich gelegentlich Zeichen in einer anderen Zeichenkodierung,
vermutlich UTF-8 zurück geliefert.

Meine Frage daher ist: wie kann ich entweder das XML schon in UTF-8 in
das XmlDocument laden oder eben dann entsprechend eben nacher den
gewünschten Attribut-Wert konvertieren?



Was genau bekommst du jetzt vom WebService? Wenn du LoadXml benutzt,
hast du doch einen .NET String (C# string). Das ist ein Sequenz von
Unicodezeichen, und die DOM-Implementierung und Eigenschaften wie Value
oder InnerText geben dir auch einen .NET String zurück.

Eine Kodierung wie UTF-8 macht nur Sinn, wenn du eine byte-Stream oder
ein byte-Array hast.


Martin Honnen MVP XML
http://msmvps.com/blogs/martin_honnen/

Ähnliche fragen