SORU
5 HAZİRAN 2009, Cuma


Bir Dosya için bir Dize Yazmak için XmlWriter

XML bir dize döndürmesi gerekir bir WCF hizmeti var. Ama yazar tek bir dosya, bir dize kurmak istiyor gibi görünüyor. Denedim:

string nextXMLstring = "";
using (XmlWriter writer = XmlWriter.Create(nextXMLstring))

Bu bir hata nextXMLstring bakmıyor dosya yolu var deyip oluşturur. Sanki bir şey onu istiyor:

using (XmlWriter writer = XmlWriter.Create("nextXMLstring.xml"))

Nasıl benim XML oluşturmak ve bir dize olarak döndürmek miyim?

Teşekkürler!!

CEVAP
5 HAZİRAN 2009, Cuma


Richard'ın söylediği gibi, StringWriter yol ileri. , StringWriter UTF-16 olarak kendini tanıtma varsayılan olarak. bir sorun olduğunu, ancak:GenellikleXML UTF-8. StringWriter sınıflara göre nasıl tamir edebilirsiniz;

public class Utf8StringWriter : StringWriter
{
    public override Encoding Encoding
    {
         get { return Encoding.UTF8; }
    }
}

Bu bildirimi XmlWriter tarafından yazılmış etkileyecektir. Eğer öyleyse dizesi dışında başka bir yerde yazma ikili form tabiki, eğer sana StringWriter düzeltme hangisi eşleşen bir kodlama kullandığınızdan emin olun. (Yukarıdaki kodu her zaman UTF-8; önemsiz yapıcı bir kodlama kabul eden daha genel bir yorum yapmak için olduğunu varsayar.)

Daha sonra kullanmak istiyorum:

using (TextWriter writer = new Utf8StringWriter())
{
    using (XmlWriter xmlWriter = XmlWriter.Create(writer))
    {
        ...
    }
    return writer.ToString();
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jejoab

    Jejoab

    4 NİSAN 2008
  • megablueblaster

    megablueblas

    23 HAZİRAN 2006
  • Tire Rack

    Tire Rack

    31 Mayıs 2007