2016-07-05 74 views
-1

我一直在使用stringbuilder很長一段時間,從來沒有這樣過。在這種情況下,我使用了一個stringbuilder來組合一個冗長的XML塊,最後它被放入一個字符串中以提交給一個web服務。在ToString中,所有雙引號都變成了雙引號。vb.net stringbuilder雙引號

Dim tXML As New StringBuilder 
Dim tt As String 

tXML.Append("<?xml version=" & """" & "1.0" & """" & " encoding=" & """" & "UTF-8" & """" & "?>") 
tt = tXML.ToString 


'At this point the value of tXML is what I'd expect: 
    {<?xml version="1.0" encoding="UTF-8"?>} 

'However the value of tt is 
    "<?xml version=""1.0"" encoding=""UTF-8""?>" 

'this method of double-quotes produces the same result 
    tXML.Append("<?xml version=""1.0"" encoding=""UTF-8""?>") 

這應該很簡單,但我很茫然。謝謝。

+1

你可以看看AppendFormat – Plutonix

+0

如果您使用調試正常,你看到這些雙雙引號看看這串。他們並不是真的在那裏。 – Steve

+1

這是完全正常的,調試器會以您(應該)將它寫入源代碼的方式向您顯示字符串。點擊望遠鏡圖標以使用文本展示臺。你會發現你沒有真正的問題。 –

回答

0

使用StringBuilder來組裝Xml似乎不是最好的方法。爲什麼不使用隨VB.Net的XML文字一起提供的Xml類?

Imports System.Xml.Linq 

Private Sub createXml() 

    Dim xDoc As New XDocument() 

    xDoc.Declaration = New XDeclaration("1.0", "utf-8", "yes") 

    xDoc.Add(<Root attr="x"> 
       <SomeElement>Some Value</SomeElement> 
      </Root>) 

    xDoc.Save("c:\somefolder\myfile.xml") 

End Sub