【问题标题】:Best way to get a comma delineated string into xml format?将逗号分隔的字符串转换为 xml 格式的最佳方法?
【发布时间】:2010-09-20 02:05:48
【问题描述】:

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

record1_field1,record1_field2,record2_field3,record2_field1,record2_field2,

等等……

我想知道最好(最简单)的方法是将其转换为 xml 吗?

我能想到两种方法:

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

方法二: - 使用 split 获取数组中的项目 - 遍历数组以构建数据表 - 使用 writexml 从数据表中输出 xml

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

第二个似乎更流畅,更容易理解。

还有其他方法吗?

【问题讨论】:

  • 你怎么知道record1在哪里结束并记录两个begings?会一直存在三个字段,还是有我们看不到的换行符?
  • 您是否关心这些字段是否被视为元素或属性?
  • 每条记录总是有一定数量的字段,因此我们可以知道一条记录在哪里结束,另一条记录在哪里开始。对于字段应该是元素还是属性没有硬性要求,但我打算将它们设为元素。

标签: xml .net-2.0 datatable


【解决方案1】:

我会这样做:

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> &lt/root>

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

【讨论】:

  • 更仔细地查看他的样本:那里有一些嵌套,这无法解释。
  • 我选择了这个作为答案,因为它让我对如何开始有了一个很好的了解。乔的回答也有帮助,但这个更完整。感谢 Joel 指出需要考虑的其他事项。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2017-09-09
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 2013-09-30
    • 2019-11-18
    相关资源
    最近更新 更多