вставить запись в XML-файл объектно-ориентированным путем Linq для XML в C #?возможно? - PullRequest
0 голосов
/ 26 февраля 2011

У меня есть шаблон XML-файла как:

<Students>
    <Student>
        <StudentID></StudentID>
        <Name></Name>
        <Address></Address>
        <EmailId></EmailId>
        <StudentMobile></StudentMobile>
        <ParentName></ParentName>
        <ParentMobile></ParentMobile>
        <Physics></Physics>
        <Chemistry></Chemistry>
        <Mathematics></Mathematics>
        <Biology></Biology>
        <RegistrationDate></RegistrationDate>

    </Student>  
</Students>

в моем приложении asp.net. Я хочу вставить регистрационную запись студента через мою веб-форму. но хочу использовать правильный объектно-ориентированный метод. как при создании объекта как «Студент», он будет иметь обязательное свойство. и хотите вставить новый узел с инкрементным (автоинкрементным) идентификатором студента. Я использую c #. Как я могу достичь этого? будет ли Linq лучшим способом сделать это? Пожалуйста, ведите меня. я новичок в XML.

Ответы [ 2 ]

2 голосов
/ 26 февраля 2011

Я получил все выше сказанное:

  public void InserStudentByXML(string uri,Student objStudent)
        {
            XDocument xmlDoc = XDocument.Load(uri);
            XElement XParentElement = new XElement("Students");
            int studentId = 0;
            studentId = xmlDoc.Descendants("Student").Max(id => (int)id.Attribute("StudentId"));
            studentId += 1;
            objStudent.StudentId = studentId;         
            xmlDoc.Element("Students").Add(
                new XElement("Student",
                                        new XElement("Name", objStudent.StudeentName),
                                        new XElement("Address", objStudent.Address),
                                        new XElement("StudentMobile", objStudent.StudentMobile),
                                        new XElement("EmailId", objStudent.StudentEmailId),
                                        new XElement("ParentName", objStudent.ParentName),
                                        new XElement("ParentMobile", objStudent.ParentMobile),
                                        new XElement("Physics", objStudent.Physics),
                                        new XElement("Chemistry", objStudent.Chemistry),
                                        new XElement("Mathemeatics", objStudent.Mathemeatics),
                                        new XElement("Biology", objStudent.Biology),
                                        new XElement("RegistrationDate", objStudent.RegistrationDate),
                                        new XAttribute("StudentId", objStudent.StudentId)

                                ));
            xmlDoc.Save(uri); 
        }
1 голос
/ 26 февраля 2011

Если вы хотите использовать объектно-ориентированную технику, вы можете использовать xml serilization и выполнить эту работу. Где вы должны сделать класс accordinto XML-схемы и сериализовать его в XML-файл. Вы также можете использовать Linq. это дает много встроенных функций для этого.

...