从c# Visual Studio中的应用程序中抓取选定的ID

本文关键字:ID 抓取 应用程序 Studio Visual | 更新日期: 2023-09-27 18:17:55

我有一段代码,当提交按钮被点击时执行

XmlDocument xml = new XmlDocument();
xml.Load("menu.xml");
XmlNode Quantity = xml.DocumentElement.SelectSingleNode("/MenuInfo/Meal/Quantity");
int qty = Convert.ToInt32(Quantity.InnerText);
// Deducting 1 from orginal quantity, you can use variable instead of quantity 1
Quantity.InnerText = (qty - 1).ToString();
//Finally you can retrieve modified xml from using doc.InnerXml
string modifiedXml = xml.InnerXml;
xml.Save("menu.xml");
MessageBox.Show("The order has been placed.");
Main nf = new Main();
nf.ShowDialog();
this.Close();

这段代码的作用是,当用户单击应用程序上的submit时,quantity元素将在"menu.xml"文件中减去1。然而,我的问题是,它只做第一餐。我目前在外部"menu.xml"文件中有四种不同的膳食,我希望该程序能够识别点击了哪一餐并从该餐中减去数量。例如,如果用户点击了第1餐,那么数量应该减去1,如果用户点击了第2餐,那么数量应该从该餐中减去。我知道需要做什么,即抓住id,但我不知道如何做到这一点,有人能帮助我吗?希望你能理解。

<?xml version="1.0" encoding="utf-8"?>
    <MenuInfo>
        <Meal>
          <MealID>1</MealID>
          <Food>Meal 1 (Fish and Chips)</Food>
          <Price>£4.99</Price>
          <Time>25 minutes</Time>
          <Quantity>12</Quantity>
        </Meal>
        <Meal>
          <MealID>2</MealID>
          <Food>Meal 2 (Chicken and Chips)</Food>
          <Price>£3.99</Price>
          <Time>25 minutes</Time>
          <Quantity>12</Quantity>
        </Meal>
        <Meal>
          <MealID>3</MealID>
          <Food>Meal 3 (Saussage and Chips)</Food>
          <Price>£2.99</Price>
          <Time>25 minutes</Time>
          <Quantity>12</Quantity>
        </Meal>
        <Meal>
          <MealID>4</MealID>
          <Food>Meal 4 (Burger and Chips)</Food>
          <Price>£5.99</Price>
          <Time>25 minutes</Time>
          <Quantity>12</Quantity>
        </Meal>
    </MenuInfo>

从c# Visual Studio中的应用程序中抓取选定的ID

您的搜索字符串可以进一步定制,以找到您正在寻找的Quantity节点

xml.DocumentElement.SelectSingleNode("//Meal[MealID = '4']/..//Quantity")

  • 在整个XML文档中搜索Meal节点

    • 有一个名为MealID的子节点

      • 它的值是4(在你的例子中它是一个变量)

        • 获取该节点的父节点(在本例中为Meal)

          • 从父节点
          • 下的任何位置获取Quantity节点

此时,您应该有您正在寻找的Quantity节点。

见:http://www.w3schools.com/xml/xpath_syntax.asp