-2

ID xmlelement 値に基づいてコードをフィルタリングしたいのですが、QueryString を介して基づいていますが、機能していないようです!!!

XmlDocument xdoc = new XmlDocument();
xdoc.Load(filepath);

XmlNode root = xdoc.DocumentElement;
XmlNode idNode = root.SelectSingleNode("/students/student/id");

           if (idNode.Value == null){create a new xml node}
else if (idNode.Value != null) {update the xml element with the value of id)

私は問題でそれを説明しようとしました、ここにリンクがあります...

https://stackoverflow.com/questions/13607387/edit-xml-elements-of-a-specific-node-based-on-its-id-element-asp-net-page

4

1 に答える 1

1

私があなたを正しく理解していれば、指定された id の学生がいない場合は学生要素を追加する必要があります (そして学生ノードにデータを追加する可能性があります)。Linq to xml ソリューションは次のとおりです。

int id = 2;
XDocument xdoc = XDocument.Load(filepath);
XElement student = xdoc.Descendants("student")
        .Where(s => (int)s.Element("id") == id)
        .SingleOrDefault();

if (student == null)
{
    student = new XElement("student",
                        new XElement("id", id),
                        new XElement("first_name"),
                        new XElement("last_name")); // add other elements here
    xdoc.Root.Add(student);
}

student.Element("first_name").Value = TextBox_firstname.Text;
student.Element("last_name").Value = TextBox_lastname.Text;
// set other values here          

xdoc.Save(filepath);
于 2012-11-29T06:50:52.570 に答える