Лучший способ получить строку, разделенную запятыми, в формат xml?
Вопрос
Используя vb.net (.net 2.0), у меня есть строка в этом формате:
record1_field1,record1_field2,record2_field3,record2_field1,record2_field2,
и т. д...
Интересно, какой лучший (самый простой) способ преобразовать это в XML?
Я могу придумать 2 способа:
Метод 1:- Используйте разделение, чтобы получить элементы в массиве - перевернуть через массив и построить строку XML, используя Concatenation
Метод 2:- Используйте Split, чтобы получить элементы в массиве - циклы через массив для создания DataTable - Используйте writexml для вывода XML из DataTable
Первый вариант звучит довольно просто, но для построения строки потребуется больше логики.
Второй кажется более понятным и понятным.
Есть ли другие способы сделать это?
Решение
Я бы сделал что-то вроде этого:
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 и наполнить его соответствующими объектами XmlElement и XmlAttribute из вашей строки...Затем запишите объект XmlDocument...