2013-04-22 4 views
1

Я пытаюсь сериализовать объект в строку. Вот код:XML Serialization to String

XmlSerializer xmlSerializer = new XmlSerializer(data.GetType()); 
StringWriter textWriter = new StringWriter(); 
xmlSerializer.Serialize(textWriter, data); 
var xml = textWriter.ToString(); 

Это работает, но «\ r \ n» являются частью строки. Я хочу выполнить преобразование XSLT с помощью этой строки. Это не работает из-за символов «\ r \ n».

Вот код преобразования:

XslCompiledTransform transform = new XslCompiledTransform(); 
transform.Load(xsltPath); 

using (XmlReader xmlReader = System.Xml.XmlReader.Create(new StringReader(xmlString))) 
{ 
    transform.Transform(xmlReader, xmlWriter); 
    ... 
} 

Как я иду по этому поводу?

+2

Вы можете разместить код для вашего преобразования тоже, пожалуйста? – Brian

+0

Проверьте свойство отступа – phadaphunk

+1

XSLT должен обрабатывать '\ r \ n' как пробелы, какую ошибку вы получаете, когда пытаетесь применить XSLT? – MiMo

ответ

2

Просто замените эти \r\n с с \n затем использовать XSLT

var xml = textWriter.ToString().Replace("\r\n", "\n");