1

正しい方向に操縦する必要があるだけかもしれませんが、メインフォームに約15個の異なるチェックボックスのリストがあるシナリオがあります. これらのボックスのいくつかをチェックすると、[保存] ボタンをクリックして、ブール値 (true の場合は 1、false の場合は 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 に答える