Прежде всего, пара комментариев на ваш вопрос:
Ваш пример XML на самом деле не поддается легкому ответу. Давайте изменим это на что-то более семантическое дружественное (это слово?):
<people>
<person>
<name>John Doe</name>
<age>21</age>
</person>
<person>
<name>Jane Smith</name>
<age>24</age>
</person>
</people>
Ваш вопрос на самом деле не упоминает, что вы пытались решить проблему. Как сказал NovaJoe, кодирование этого было бы довольно тривиально с использованием Linq-to-XML и Linq-to-SQL, так как же вы предпочитаете взаимодействовать с вашей базой данных? Вы писали код C # в прошлом для подключения к базе данных? Вы знакомы с LINQ? ( Если нет, вы должны изучить это! )
Чтобы убедить вас в том, как плохо вы должны изучать вышеупомянутые технологии, если вы еще не знакомы с ними, я поделился кратким примером Linq-to-XML и Linq-to-SQL, используя отличную программу LINQPad
У меня была следующая таблица базы данных:
CREATE TABLE [dbo].[People]
(
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](max) NOT NULL,
[Age] [int] NOT NULL,
CONSTRAINT [PK_People] PRIMARY KEY CLUSTERED
(
[Id] ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
И я использовал LinqPAD, чтобы просто открыть для меня стандартное соединение Linq-to-SQL:
![sample linqpad database connection](https://i.stack.imgur.com/qD3FK.png)
Наконец, код C #:
// Connect to the database using linq-to-sql
var db = new TypedDataContext();
// Load the xml file using linq-to-xml
var doc = XDocument.Load(@"C:\path\to\file\people.xml");
var people = doc.Descendants("person");
foreach (var person in people)
{
// Create person object
var personObject = new People();
personObject.Name = person.Descendants("name").Single().Value;
personObject.Age = Convert.ToInt32(person.Descendants("age").Single().Value);
// Queue to add person to database
db.People.InsertOnSubmit(personObject);
}
// Finally, submit any pending changes
db.SubmitChanges();
В результате в мою базу данных поступили следующие данные:
![table with data](https://i.stack.imgur.com/dNIEv.png)