首页 > 解决方案 > 在 C# 中使用 xpath 写入节点值

问题描述

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:psop="/PSOPK/">
  <soapenv:Header/>
  <soapenv:Body>
    <psop:totalizerRequest>
      <psop:ip>?</psop:ip>
      <psop:dispenser_id>1</psop:dispenser_id>
      <psop:nozzel_id>1</psop:nozzel_id>
    </psop:totalizerRequest>
  </soapenv:Body>
</soapenv:Envelope>

这是我发送的请求。我想以 c# windows 形式生成它的 xpath,以便我可以访问 psop:ip。我只想将这些节点的值设置为通过文本框给出的值。

 XmlNamespaceManager mgr = new XmlNamespaceManager(xml1.NameTable);
            //mgr.AddNamespace(string.Empty, "soapenv");
            mgr.AddNamespace("psop", "soap:env");
            XmlElement name2 = (XmlElement)xml1.SelectSingleNode("//psop:ip", mgr);
            if (name2 == null)
            {
                try
                {
                    name2.InnerText = "10.37.224.50";
                }
                catch (Exception ex)
                {
                    lblresult.Enabled = true;
                    lblresult.Text = Convert.ToString(ex);
                }
            }

这是我到目前为止所做的,但是在调试时 name2 始终为空。

标签: xpath

解决方案


推荐阅读