为了账号安全,请及时绑定邮箱和手机立即绑定

如何发送 XML 标签的值

如何发送 XML 标签的值

C#
梵蒂冈之花 2021-10-09 10:31:46
我有一个外部 CML 文件,我将它保存在 Asp.Net mvc 项目的 Xml 文件夹中string lStrXMLRequest = System.Web.HttpContext.Current.Server.MapPath("/Xml/SoapAvailabilitySearch.xml");StreamReader str = new StreamReader(lStrXMLRequest);string XMLText = str.ReadToEnd();str.Close();XMLText.Replace("[orgname]",org);但是我看到 orgname 没有被 org 变量中发送的值替换。任何人都可以告诉我如何将值从 c# 发送到 XML 文件。这是我的 XML 文件:<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  <soap:Body>    <AvailabilitySearch xmlns="http://www.reservwire.com/namespace/WebServices/Xml">      <xiRequest>        <Authority>          <Org>[orgname]</Org>          </Authority>          </xiRequest>    </AvailabilitySearch>  </soap:Body></soap:Envelope>任何帮助将非常感激。
查看完整描述

3 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

您编写了一个 XML 文件,但其中一个字段不正确,因此与其在编写之前更正该字段,不如决定将其作为文本加载到内存中,并进行字符串替换是个好主意?

如果该文件是 100MB 或 10GB 怎么办?您可能很难将其加载到内存中只是为了进行字符串替换!

为什么不首先修复文件?


查看完整回答
反对 回复 2021-10-09
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

您最初的尝试未string.Replace正确使用。字符串是不可变的,因此此方法返回一个新字符串,其中旧文本被新文本替换。你的代码没有将它分配给任何东西,所以当方法完成时它会被丢弃。

这将满足您的需求,但内存效率不高,因为您必须将整个文件读入内存才能执行替换。

另一种方法是使用XmlReader和 XmlWriter 从文件中一次读取一个节点,并通过读取器将它们传递给写入器,有条件地将更新的元素值写入在节点序列中找到的位置。


查看完整回答
反对 回复 2021-10-09
  • 3 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信