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
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();
}
Dosya için satır yazmak için doğru yol...
R bir dosya için metin satırları yazma...
Python için geçerli bir dosya adı dönü...
Ve bir dosya okumak ve yazmak için Nas...
Kullanarak BOM olmadan UTF-8'de bir do...