Re: XmlTextwriter Output als String
- From: Martin Honnen <mahotrash@xxxxxxxx>
- Date: Thu, 15 Oct 2009 19:54:44 +0200
Werner Perplies wrote:
ich würde gerne einen String in Xml-Output mit gewünschter Codierung als
String umwandeln.
Generell könnte ich das natürlich über eine temporäre Datei realisieren:
XmlTextWriter xw = new XmlTextWriter(xmlFileName,
Encoding.GetEncoding(1252));
.
.
.
xw.Close();
und dann die Datei wieder einlesen.
es müsste doch einen einfacheren Weg geben, oder?
Wenn ich es so versuche:
internal string ConvertStringToXmlString(string tag, string
content)
{
StringWriter sw = new StringWriter();
XmlTextWriter xmlWriter = new XmlTextWriter(sw);
xmlWriter.WriteStartElement(tag);
xmlWriter.WriteString(content);
xmlWriter.WriteEndElement();
xmlWriter.Close();
return sw.ToString();
}
habe ich zwar einen String, kann aber das Encoding nicht festlegen.
Ein .NET String ist intern immer UTF-16 kodiert.
Wenn es dir nur um die XML-Deklaration geht, dann kannst du von StringWriter ableiten und die Encoding-Eigenschaft überschreiben:
public class StringWriterWithEncoding : StringWriter
{
private Encoding myEncoding;
public override Encoding Encoding
{
get
{
return myEncoding;
}
}
public StringWriterWithEncoding(Encoding enc) : base()
{
myEncoding = enc;
}
}
und dann etwa
internal string ConvertStringToXmlString(string tag, string
content, Encoding encoding)
{
StringWriter sw = new StringWriterWithEncoding(encoding);
using (XmlWriter xmlWriter = XmlWriter.Create(sw))
{
xmlWriter.WriteStartElement(tag);
xmlWriter.WriteString(content);
xmlWriter.WriteEndElement();
xmlWriter.Close();
}
return sw.ToString();
}
dann wird der XmlWriter in der XML-Deklaration das übergebene Encoding ausgeben.
--
Martin Honnen --- MVP XML
http://msmvps.com/blogs/martin_honnen/
.
- Follow-Ups:
- Re: XmlTextwriter Output als String
- From: Werner Perplies
- Re: XmlTextwriter Output als String
- References:
- XmlTextwriter Output als String
- From: Werner Perplies
- XmlTextwriter Output als String
- Prev by Date: XmlTextwriter Output als String
- Next by Date: Re: XmlTextwriter Output als String
- Previous by thread: XmlTextwriter Output als String
- Next by thread: Re: XmlTextwriter Output als String
- Index(es):
Relevant Pages
|