a parameter in my new LoadUserConfig function. Then I began to study XmlDocument class and found out
that it has wonderful functions .Load(File fileName) which loads XML from a file (which of course wasn't what I really wanted) & another functions .LoadXml(string strSomething) which loads XML directly from string. After that I just used a simple XPath expression to find the nodes that I really wanted and then just use the data from nodes. That's all!
| private void LoadUserConfigs(UsersDataSet.T_UsersRow dr) |
| { |
| SetFilterCountryCmb(Agences); |
| XmlDocument xd = new XmlDocument(); |
| xd.LoadXml(dr.MEM_CONFIG); |
| string xpathExpression = "//fields/field"; |
| XmlNodeList nodes = xd.SelectNodes(xpathExpression); |
| if (nodes.Count > 0) |
| { |
| foreach (XmlNode node in nodes) |
| { |
| ((ToolStripMenuItem)this.fieldsToolStripMenuItem.DropDown.Items[int.Parse(node.InnerText)]).Checked = false; |
| //grid.Column(int.Parse(node.InnerText)).Visible = false; |
| } |
| } |
| xpathExpression = "//filters/idCountry"; |
| XmlNode nodeIdCountry = xd.SelectSingleNode(xpathExpression); |
| xpathExpression = "//filters/idAgency"; |
| XmlNode nodeIdAgency = xd.SelectSingleNode(xpathExpression); |
| cmbFilterCountry.SelectedValue = int.Parse(nodeIdCountry.InnerText); |
| cmbFilterAgency.SelectedValue = int.Parse(nodeIdAgency.InnerText); |
| xpathExpression = "//sorted/key"; |
| XmlNode nodeKey = xd.SelectSingleNode(xpathExpression); |
| sortedLast = nodeKey.InnerText; |
| xpathExpression = "//sorted/value"; |
| XmlNode nodeValue = xd.SelectSingleNode(xpathExpression); |
| sortedCritere = nodeValue.InnerText; |
| //Console.WriteLine("KEY: " + nodeKey.InnerText + " VALUE: " + nodeValue.InnerText); |
| if (nodeKey.InnerText != string.Empty || nodeValue.InnerText != string.Empty) |
| { |
| SortDataTable(Users, nodeKey.InnerText, nodeValue.InnerText); |
| } |
| xpathExpression = "//date/year"; |
| XmlNode nodeYear = xd.SelectSingleNode(xpathExpression); |
| xpathExpression = "//date/month"; |
| XmlNode nodeMonth = xd.SelectSingleNode(xpathExpression); |
| CurrentDate = new DateTime(int.Parse(nodeYear.InnerText), int.Parse(nodeMonth.InnerText), 1); |
| } |
No comments:
Post a Comment