2013-07-01 71 views
-1

在c#中,如果必須創建新的XElement,我可以使用以下兩種方法。創建XML元素時,硬編碼字符串操作與Xelement

方法1

string m = "<address>"; 
     m += "<addressline1>" + address.Addressline1 + "</addressline1>"; 
     m += "<addressline2>" + address.Addressline2 + "</addressline2>"; 
     m += "<city>" + address.Addressline1 + "</city>"; 
     m += "<postcode>" + address.Addressline1 + "</postcode>"; 
     m += "</address>"; 

方法2

XElement a = new XElement("address", 
        new XElement("addressline1", address.Addressline1), 
        new XElement("addressline2", address.Addressline2), 
        new XElement("city", address.City), 
        new XElement("postcode", address.postcode) 
           ); 

哪種方法更優選,如果我的最終目標是隻爲求得一個自定義對象爲XML字符串?

+1

XElement。它不僅會自動爲您編寫XML編碼內容,而且還會使它更容易處理。 –

+0

-1爲基於意見的問題,即使選擇2顯然更好。 –

+0

@Brad:嗯。我不會說這是一個意見問題。使用字符串操作顯然是錯誤的。 –

回答

2

我強烈建議使用第二種方法。如果你的值來自變量當然。如果您的xml已定義且不會更改,請以xml文件的形式將其存儲在文件系統中,並根據需要加載它們。

有幾個原因,你不應該在第一個例子做的

  • 的數據可以包含<>字符可能導致問題,第二種方式自動處理它
  • 代碼的可讀性顯著下降在第一種情況下
  • 硬代碼是一個嚴重的反模式
  • 第二種方法爲進一步操作對象作爲XML文檔提供了堅實的工具
1

第二個更好,因爲XElement會爲你逃脫所有的值。

6

永遠不要使用字符串操作來構建XML。改爲使用XML API,如XElement。它知道XML的所有規則,而字符串連接不知道。