从XML中提取文本时保留换行符和回车符

时间:2014-05-05 13:37:08

标签: xml vb.net

我在VS 2010专业版中使用VB.Net。

我需要从包含文本中换行符的XML文件中提取数据。换行位置标有以下字符“& #xA”。

使用XmlTextReader和XmlDocument我可以成功提取我需要的数据并将其显示在消息框和文本框中。消息框输出中显示的文本显示相关的换行,但文本框中的文本没有换行符,IE显示在一行上。

文本框多行和wordwrap属性设置为true。

以下文字直接取自xml文件“Photo:Any Image Ltd”& #xA“Ampthill v London Irish Wild Geese”& #xA“RFU National - SSE Nat League 2。

消息框输出正确显示换行符: -

文本框输出为: - 照片:Any Image Ltd Ampthill v London Irish Wild Geese RFU National - SSE Nat League 2.(无换行)

自启动此帖子以来,我将文本直接从文本框复制到“Word”中并显示换行符?

我现在更加困惑了!

发布此问题后,将文本框中的文本从我的应用程序复制到“Word”中,因为它显示了换行符,我意识到它必须与文本框本身有关。

我用“RichTextBox”替换了我的文本框,这显示了换行符!

我没有删除这个问题,因为这些微小的信息可能会帮助别人。

1 个答案:

答案 0 :(得分: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." 

此字符串在多行TextBox中显示为两行,RichTextBox中显示四行,这是您已找到并发布的变通方法。