2014-05-05 106 views
0

我在VS 2010專業版中使用VB.Net。從XML中提取文本時保留換行符和回車符

我需要從包含文本中換行符的XML文件中提取數據。換行位置標有以下字符「&#xA」。

使用XmlTextReader和XmlDocument我可以提取我需要的數據,並將其顯示在消息框和文本框中。顯示在消息框輸出中的文本顯示相關的換行符,但是文本框中的文本沒有換行符,它全部顯示在一行上。

將textbox多行和wordwrap屬性設置爲true。

下面的文本直接從XML文件取「照片:任何圖像有限公司」 & #xA「安特希爾v倫敦愛爾蘭野鵝」 & #xA「RFU國家 - SSE納特聯賽2

消息箱輸出顯示換行符正確: -

文本框輸出是: - 照片:任何圖像有限公司安特希爾v倫敦愛爾蘭野鵝RFU國家 - SSE納特聯賽2(無換行符)

由於這起線程,我直接從文本框複製文本到「Word」,它顯示了換行?

我現在更加困惑了!

由於發佈此問題並將文本從我的應用程序中的文本複製到「Word」中,因爲它顯示了換行符,我意識到它必須與文本框本身有關。

我用「RichTextBox」替換了我的文本框,這顯示了正確的行提要!

我還沒有刪除這個問題,因爲這個小小的信息可能會幫助別人。

回答

0

您的問題提到了回車和換行符,但是您的XML字符串只包含一個換行符(& #xA)字符。

TextBox似乎期待Environment.NewLine,它是Windows上的CRLF。 RichTextBox似乎接受CR,LF或CRLF作爲換行符。例如:

Dim test$ = "This is a string with a linefeed here " & ControlChars.Lf & " and a carriage return here " & ControlChars.Cr & " and now a CRLF " & ControlChars.CrLf & " The end." 

此字符串顯示爲兩行多行文本框和四行在RichTextBox,這是因爲你已經找到,併發布有關解決辦法。

相關問題