2010-03-03 11 views
7

kullanırken taşıma dönüşünü koruyun \ r \ n veya \ n olmak üzere bir satırbaşı dönüşüne duyarlı bir uygulamam var. XML'de bir değerden geçiyorum ve XDocument kullanarak ayrıştırdığımda, satır başı geri dönüş değeri \ n'ye dönüştürülüyor ve \ r \ n olarak korunmasını sağlayacak bir yol bulmaya çalışıyorum.XDocument.Parse

string myVal = "1234\r\nabcd"; 
string xmlText = "<doc>" + myVal + "</doc>"; 
XDocument xDoc = XDocument.Parse(xmlText); 
Console.WriteLine("result=" + (xDoc.Element("doc").Value == myVal)); 
Console.WriteLine("result=" + (xDoc.Element("doc").Value == myVal.Replace("\r\n", "\n"))); 

Sonuçlar: XDocument.Parse için LoadOptions.PreserveWhitespace Geçme

result=False 
result=True 

cevap

3

gelen ancak durum olmadığı görülüyor altındaki topluluk içeriğinden preserve insignificant boşluk gerekiyordu.

XDocument yerine XmlReader kullanarak yükleyebilir misiniz? Bu daha fazla esneklik sunabilir.

+0

Evet PreserveWhiteSpace seçeneğini hiç sevmeyerek denedim. Ben XmlReader hakkında düşündüm ama bir dize üzerinde bir okuyucu kullanmak için overkill gibi görünüyor. Zarif bir yol yoksa, muhtemelen sadece bir arama ile alıp Parse'den aldığım değerin yerine geçeceğim. – sipwiz