如何发送 XML 标签的值

我有一个外部 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>

任何帮助将非常感激。


梵蒂冈之花
浏览 150回答 3
3回答

喵喔喔

您编写了一个 XML 文件,但其中一个字段不正确,因此与其在编写之前更正该字段,不如决定将其作为文本加载到内存中,并进行字符串替换是个好主意?如果该文件是 100MB 或 10GB 怎么办?您可能很难将其加载到内存中只是为了进行字符串替换!为什么不首先修复文件?

慕盖茨4494581

您最初的尝试未string.Replace正确使用。字符串是不可变的,因此此方法返回一个新字符串,其中旧文本被新文本替换。你的代码没有将它分配给任何东西,所以当方法完成时它会被丢弃。这将满足您的需求,但内存效率不高,因为您必须将整个文件读入内存才能执行替换。另一种方法是使用XmlReader和 XmlWriter 从文件中一次读取一个节点,并通过读取器将它们传递给写入器,有条件地将更新的元素值写入在节点序列中找到的位置。
打开App,查看更多内容
随时随地看视频慕课网APP