将逗号描述的字符串转换为xml格式的最佳方法?

将逗号描述的字符串转换为xml格式的最佳方法?,xml,.net-2.0,datatable,Xml,.net 2.0,Datatable,使用VB.net(.net 2.0) 我有一个以下格式的字符串: record1_field1,record1_field2,record2_field3,record2_field1,record2_field2, 等等 我想知道将其转换为xml的最佳(最简单)方法是什么 我可以想出两种方法: 方法1: -使用split获取数组中的项 -循环遍历数组并使用连接构建xml字符串 方法2: -使用split获取数组中的项 -循环数组以构建数据表 -使用writexml从数据表输出xml 第一个听

使用VB.net(.net 2.0) 我有一个以下格式的字符串:

record1_field1,record1_field2,record2_field3,record2_field1,record2_field2,
等等

我想知道将其转换为xml的最佳(最简单)方法是什么

我可以想出两种方法:

方法1: -使用split获取数组中的项 -循环遍历数组并使用连接构建xml字符串

方法2: -使用split获取数组中的项 -循环数组以构建数据表 -使用writexml从数据表输出xml

第一个听起来很简单,但是需要更多的逻辑来构建字符串

第二个看起来更圆滑,更容易理解


还有其他方法可以做到这一点吗?

您可以创建一个XmlDocument,并从字符串中填充适当的XmlElement和XmlAttribute对象,而不是进行字符串连接。。。然后,写出XmlDocument对象…

我会这样做:


XmlDocument doc = new XmlDocuent();

string[] data = csv.split(',');

XmlNode = doc.CreateElement("root");
foreach(string str in data)
{
    XmlNode node = doc.CreateElement("data");
    node.innerText = str;
    root.AppendChild(node);
}
Console.WriteLine(doc.InnerXML);

<root>
    <data>field 1</data>
    <data>field 2</data>
    <data>field 3</data>
</root>
应该返回如下内容:


XmlDocument doc = new XmlDocuent();

string[] data = csv.split(',');

XmlNode = doc.CreateElement("root");
foreach(string str in data)
{
    XmlNode node = doc.CreateElement("data");
    node.innerText = str;
    root.AppendChild(node);
}
Console.WriteLine(doc.InnerXML);

<root>
    <data>field 1</data>
    <data>field 2</data>
    <data>field 3</data>
</root>

字段1
字段2
字段3
</root>

对于嵌套的数据,您必须以稍微不同的方式嵌套循环/标记化…

更仔细地查看他的示例:其中存在一些嵌套,这无法解释。我选择此作为答案,因为它为我提供了如何开始的好主意。乔的回答也有帮助,但这一个更完整。感谢乔尔指出了另外一些要考虑的事情。你怎么知道录音录在哪里结束并记录两个开始?是否总是有三个字段,或者是否有我们看不到的换行符?您是否关心这些字段是否被视为元素或属性?每个记录都将始终有一组字段,以便我们可以知道一个记录的结束位置和另一个记录的开始位置。对于字段是否应该是元素或属性没有严格的要求,但是我计划将它们设置为元素。