2012-11-29 56 views
2

的值語句塊如何可以基於ID的值(XML元素)創建如果基於XML元素

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} 

恐怕,該代碼選擇在所述第一節點i創建if語句的塊文件,,,或者這有另一種方法,我可以根據它的id值選擇節點?

+1

扔掉** **老'的Xml Api'..'Use LINQ2XML' – Anirudha

+0

那麼,我該怎麼辦它LINQ2SQL ???? –

+0

你應該向我們展示你的'xml'和你想從你的xml中得到什麼'node' – Anirudha

回答

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 

OR

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

StudentNodeWithID1.Element("id");//id node 
StudentNodeWithID1.Element("id").Value;//id value 
+0

Select(x => x)做什麼? –

+0

現在var StudentNodeWithID1選擇學生內部的所有元素? –

+0

StudentNodeWithID1.Element(「first_name」)。Value = TextBox_firstname.Text;在 「VAR」 語句後 不起作用...... –

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>+"']"); 

它將工作...