2014-07-10 35 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

相关问题