2

如何根据 id 的值(XML 元素)创建 if 语句块

string filepath = Server.MapPath("XMLFile2.xml");

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

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

   if (idNode.Value == 1.ToString()){my code}

恐怕这段代码会选择文件中的第一个节点,或者这有另一种方式我可以根据节点的 id 值选择节点????

4

2 回答 2

3

替换您的此代码

以前的代码

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

新代码

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

而且,如果您想根据 id 的值搜索节点而不是使用以下值,则主要是这样。

XmlNode idNode = root.SelectSingleNode("//students/student/[id='"+<YOUR id>+"']");

它会工作...

于 2012-11-29T08:07:04.140 回答
1

您可以使用LINQ2XML

XElement doc =XElement.Load(filepath);
var xpath = String.Format("//students/student/[id='{0}']", "1");
                                                            -
                                                            |->your ID value goes here
var StudentNodeWithID1= doc.XPathSelectElement(xpath);
//selects a single student node with id as 1 or would return NULL if there are no students with id as 1

或者

var StudentNodeWithID1= doc.Elements("student")
                           .Where(s => s.Element("id").Value == "1")
                           .SingleOrDefault();

StudentNodeWithID1.Element("id");//id node
StudentNodeWithID1.Element("id").Value;//id value
于 2012-11-29T08:01:57.340 回答