2014-07-10 36 views
1

我正在使用System.Xml並使用由\r\n分隔的字符串構成文本框。該字符串基本上是一系列序列號,我想將其格式化爲XML以傳遞到存儲過程以運行驗證。使用LINQ將分隔字符串轉換爲C#中的xml

字符串的一個例子,因爲它現在看起來:

"ABC123\r\nDEF456\r\n" 

我想這將是一個非常基本的XML模式,例如

<SerialNumbers> 
    <Serial>ABC123</Serial> 
    <Serial>DEF456</Serial> 
<SerialNumbers 

什麼是實現這一目標的基本思路所以我有一些跳板脫離?

+1

建立在你的string.Split()結果中的XML結構和循環。在這裏檢查XML創建文檔:http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx – itsme86

+2

你*不*試圖解析這個XML - 你試圖*有效地將數據格式化爲XML。有兩個步驟:1)將你當前的字符串分成不同的序列號; 2)從中創建一個XML文檔。你有哪些問題? –

+0

謝謝你們。你有什麼建議讓這個問題更符合規則嗎?我希望這可以爲他人提供幫助。我會看看幫助中心。 – Dezryth

回答

5

使用LINQ這將是非常簡單的,分裂連續到列表/數組後:

var doc = new XDocument(
    new XElement("SerialNumbers", 
     (from x in serials select new XElement("Serial", x)) 
    ) 
); 
+0

這條線遇到了一個奇怪的錯誤。名稱'doc'在當前上下文中不存在'。我通常知道這意味着你正在嘗試使用的變量沒有被聲明,所以我有點困惑爲什麼我收到這個。有任何想法嗎? – Dezryth

+0

http://puu.sh/a5kF6/13cf9aec31.png代碼如下所示。 – Dezryth

+0

@Dezryth你錯過了類型聲明!要麼使用'var doc'或'XDocument doc'來獲得代碼編譯... – Mig

相關問題