【问题标题】:updating an inner text of xml node after changing the value in datagridview更改 datagridview 中的值后更新 xml 节点的内部文本
【发布时间】:2019-03-02 21:37:27
【问题描述】:

我有一个小问题...首先,我必须读取 xml 文件并在 datagridview 中提取 Arg.2...然后我必须更新 datagrid 中的值。最后,当按下更新按钮时,我需要再次将此值写入 Arg.2 并用新名称保存 xml 文件。

我可以读取提取时的值以及在消息框中更新时的值,但我在 xml 文件中看不到它...请让我知道出了什么问题。

下面是button_click下的代码:

    openFileDialog1.ShowDialog();
                XmlDocument Newdoc = new XmlDocument();
                Newdoc.Load(openFileDialog1.FileName);

                w = dataGridView1.Rows[0].Cells["Arg2"].Value.ToString();
                Newdoc.SelectSingleNode(".//event[@type='2VO']/properties/media[@Arg2]").InnerText = w;
                MessageBox.Show(Newdoc.SelectSingleNode(".//event[@type='2VO']/properties/media[@Arg2]").InnerText);

Newdoc.Save(@"C:\download\updatedxml.xml");

奇怪的是,在检查新的 updatedxml 文件时,我看到值在一个非常奇怪的位置更新...见下文(2100 位置):

<event type="2VO">
          <properties>
            <schedule startType="-ParentEnd" startOffset="00:00:33:00" endType="Duration" endOffset="00:00:22:00" />
            <event title="Pixel VO" reconcileKey="106251137" />
            <mediaStream>
              <cg type="PIXEL CG" />
              <allocation type="ListStream">
                <listStream type="Fixed" listStreamNo="0" />
              </allocation>
            </mediaStream>
            <media RuleCode="2VO" Arg1="TUE" Arg2="1940" Arg3="O1T13810" Arg4="" Arg5="" Arg6="" Arg7="" Arg8="">2100</media>

这不是所需的位置...我的 Xpath 有什么问题吗?

【问题讨论】:

    标签: c# xmlnode


    【解决方案1】:

    这样做并像 node exist 那样检查验证,或者不检查您的 XPath

      try 
        {          
        XmlDocument doc = new XmlDocument();
        doc.Load(yourDoc); //load youe xml doc
        doc.SelectSingleNode("your node").InnerText = "new text";//select your node which you want to update
        doc .Save(@"C:\download\updatedxml.xml");
    //then show your message box
        }
        catch(exception ex)
        {
           //catch  exception here
        }
    

    然后显示您的消息框

    【讨论】:

    • 奇怪的是,在检查新的 updatedxml 文件时,我看到值正在一个非常奇怪的位置更新...见下文:
    • 您好,请更新您的问题,以便我能更好地理解
    • 我确实也用 xml 文件更新了主目录...观察到奇怪的行为...看看。谢谢
    【解决方案2】:

    我发现了问题...这是Xpath 的问题...所以当我将其修改为(.//@Arg.2).innertext 时,它工作正常。

    【讨论】:

    • 正如我在检查节点是否存在之前告诉你的那样欢呼并享受伴侣
    猜你喜欢
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多