Итак, у меня есть этот большой XML-файл, содержащий более 300 элементов для каждой записи, и мне нужно вставить эти записи в таблицу базы данных. Имена узлов в XML-файле такие же, как имена столбцов в db. И все они струны. Есть ли автоматический способ сопоставить их и вставить данные, или мне придется выписывать строки кода, сопоставляющие каждый столбец с каждым элементом в файле XML? Используя SQL Server 2005.





Какой механизм базы данных вы используете?
SQL-сервер может импортировать данные с помощью массовой загрузки или мастера импорта / экспорта и т. д.
Я согласен с тем, что для SQL-сервера использование массовой загрузки или SQL / XML является хорошим вариантом.
Если база данных не является SQL-сервером и изначально не поддерживает xml, другим вариантом будет использование базового xslt для преобразования xml в csv или tsv; большинство баз данных могут импортировать файлы с разделителями.
Конечно, возникнет другой вопрос: а почему у вас 300 столбцов?
300 столбцов? Не так, как я прочитал вопрос, но, опять же, мой английский не так хорош. :) Насколько мне известно, автоматического сопоставления между Xml и таблицей / столбцами базы данных нет. Но не должно ли быть так сложно написать динамическое обновление? Получите все имена столбцов (имена узлов) и добавьте их в строку (столбец1, столбец2 и т. д.), А затем выполните итерацию по xml для получения значений (node1.Value, node2.Value и т. д.). Или, если вы используете Sql Server 2005/2008, используйте объемная вставка.