1

我可能只需要朝着正确的方向前进,但我有一个场景,在我的主表单上,我有一个包含大约 15 个不同复选框的列表。当我选中其中一些框时,我希望能够单击“保存”按钮并将布尔值(1 表示真,2 表示假)存储在相应的 XML 文件中。

我的 XML 文件结构如下:

<?xml version="1.0" encoding="utf-8" ?>
<Tests>
  <EngName></EngName>
  <Test Name="NavigatorLaunch" Value="0"></Test>
  <Test Name="Navigator_Links" Value="0"></Test>
  <Test Name="CLR_ActiveEng" Value="0"></Test>
  <Test Name="Open_ActiveEng" Value="0"></Test>
  <Test Name="CLR_ArchiveEng" Value="0"></Test>
  <Test Name="Open_ArchiveEng" Value="0"></Test>
  <Test Name="Replicate_ActiveEng" Value="0"></Test> 
  <Test Name="Org" Value="1"></Test>
  <Test Name="MAT" Value="0"></Test>
  <Test Name="PA" Value="0"></Test>
  <Test Name="CA" Value="0"></Test>
  <Test Name="Scoping" Value="0"></Test>
  <Test Name="AR" Value="0"></Test>
  <Test Name="Controls" Value="0"></Test>
  <Test Name="GEToD" Value="0"></Test>
  <Test Name="GESA" Value="0"></Test>
  <Test Name="GEToC" Value="0"></Test>
  <Test Name="DL" Value="0"></Test>
  <Test Name="CDW" Value="0"></Test>
  <Test Name="IM" Value="0"></Test>
  <Test Name="TaskStatus" Value="0"></Test>
  <Test Name="Dashboard" Value="0"></Test>
  <Test Name="EngagementCheck" Value="0"></Test>
  <Test Name="ER" Value="0"></Test>
  <Test Name="AuraMenu" Value="0"></Test>
  <Test Name="GELoadTest" Value="0"></Test>
  <Test Name="SM" Value="0"></Test>
  <Test Name="GE_TypeOfWork" Value="0"></Test>
  <Test Name="GE_TypeOfWork_UICheck" Value="0"></Test>
</Tests>

任何帮助都会很棒!

5/9 - 我尝试用于此解决方案的代码更新.. 但仍然出现错误。对象参考。我的元素语法显然不正确,我猜我无法选择我想以此为基础的第一个属性。

var doc3 = XDocument.Load(xml_path2);
            var elem = doc3.XPathSelectElement("//Tests/Test[Name='NavigatorLaunch']");


            if (checkBoxNavigator.Checked == true)
            {
                elem.Attribute("Value").Value = "1";
            }
            else
            {
                MessageBox.Show("It is not checked");
            }
            doc3.Save("C:\\CAR_Audition\\param.xml");
4

1 回答 1

0

想出了最简单的方法,如下所示:

var doc3 = XDocument.Load(xml_path2);
            var elem = doc3.XPathSelectElement("/Tests/Test[@Name='NavigatorLaunch']");

            if (elem != null)
            {
              elem.Attribute("Value").Value = checkBoxNavigator.Checked ? "1" : "0";
            }
于 2013-05-09T18:22:08.887 回答